@gudhub/core 1.2.4-beta.6 → 1.2.4-beta.60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.parcel-cache/83e7562660f7cc15-BundleGraph +0 -0
- package/.parcel-cache/9a0d07555444f4da-AssetGraph +0 -0
- package/.parcel-cache/d3a1b9507cb44047-AssetGraph +0 -0
- package/.parcel-cache/data.mdb +0 -0
- package/.parcel-cache/dc1da35000e13623-RequestGraph +0 -0
- package/.parcel-cache/lock.mdb +0 -0
- package/.parcel-cache/snapshot-dc1da35000e13623.txt +29402 -0
- package/.parcelrc.appRequestWorker +4 -0
- package/GUDHUB/AppProcessor/AppProcessor.js +58 -26
- package/GUDHUB/ChunksManager/ChunksManager.test.js +11 -4
- package/GUDHUB/DataService/AppDataService.js +36 -1
- package/GUDHUB/DataService/ChunkDataService.js +7 -1
- package/GUDHUB/DataService/IndexedDB/IndexedDBAppService.js +773 -43
- package/GUDHUB/DataService/IndexedDB/IndexedDBChunkService.js +118 -85
- package/GUDHUB/DataService/IndexedDB/IndexedDBService.js +171 -7
- package/GUDHUB/DataService/IndexedDB/StoreManager/BaseStoreManager.js +97 -0
- package/GUDHUB/DataService/IndexedDB/StoreManager/managers.js +77 -0
- package/GUDHUB/DataService/IndexedDB/appDataConf.js +6 -3
- package/GUDHUB/DataService/IndexedDB/appRequestWorker.js +163 -0
- package/GUDHUB/DataService/IndexedDB/chunkDataConf.js +3 -3
- package/GUDHUB/DataService/IndexedDB/consts.js +1 -1
- package/GUDHUB/DataService/IndexedDB/init.js +18 -17
- package/GUDHUB/DataService/IndexedDB/storeManagerConf/chunkCacheStoreManagerConf.js +11 -0
- package/GUDHUB/DataService/IndexedDB/storeManagerConf/init.js +1 -0
- package/GUDHUB/DataService/export.js +69 -14
- package/GUDHUB/DataService/httpService/AppHttpService.js +13 -5
- package/GUDHUB/DataService/httpService/ChunkHttpService.js +41 -26
- package/GUDHUB/DataService/utils.js +27 -27
- package/GUDHUB/FileManager/FileManager.js +7 -3
- package/GUDHUB/GHConstructor/createAngularModuleInstance.js +63 -42
- package/GUDHUB/GHConstructor/createClassInstance.js +8 -3
- package/GUDHUB/ItemProcessor/ItemProcessor.js +14 -6
- package/GUDHUB/Storage/ModulesList.js +66 -3
- package/GUDHUB/Utils/AppsTemplateService/AppsTemplateService.js +48 -5
- package/GUDHUB/Utils/Utils.js +29 -1
- package/GUDHUB/Utils/filter/filter.js +32 -1
- package/GUDHUB/Utils/get_date/get_date.test.js +3 -12
- package/GUDHUB/Utils/merge_chunks/merge_chunks.js +36 -28
- package/GUDHUB/Utils/merge_chunks/merge_chunks.worker.js +78 -0
- package/GUDHUB/Utils/merge_compare_items/merge_compare_items.js +40 -9
- package/GUDHUB/Utils/nested_list/nested_list.js +53 -50
- package/GUDHUB/Utils/nested_list/nested_list.test.js +140 -2
- package/GUDHUB/WebSocket/WebSocket.js +2 -1
- package/GUDHUB/api/AppApi.js +13 -13
- package/GUDHUB/api/ChunkApi.js +6 -6
- package/GUDHUB/config.js +11 -2
- package/GUDHUB/consts.js +15 -1
- package/GUDHUB/gudhub.js +48 -26
- package/GUDHUB/gudhubAppRequestWorker.js +18 -0
- package/build.sh +127 -0
- package/diff.txt +1221 -0
- package/dist/gudhub.es.js +13455 -0
- package/dist/gudhub.umd.js +197 -0
- package/index.js +3 -1
- package/indexUMD.js +0 -2
- package/package.json +38 -22
- package/umd/library.min.js +285 -2
- package/umd/library.min.js.map +1 -1
- package/vite.config.esm.js +72 -0
- package/vite.config.umd.js +68 -0
- package/GUDHUB/ChunksManager/ChunksManager.js +0 -68
- package/umd/library.min.js.LICENSE.txt +0 -13
- package/webpack.config.js +0 -33
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
(function(s,F){typeof exports=="object"&&typeof module<"u"?module.exports=F():typeof define=="function"&&define.amd?define(F):(s=typeof globalThis<"u"?globalThis:s||self,s.GudHub=F())})(this,function(){"use strict";var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function getDefaultExportFromCjs(s){return s&&s.__esModule&&Object.prototype.hasOwnProperty.call(s,"default")?s.default:s}function getAugmentedNamespace(s){if(s.__esModule)return s;var F=s.default;if(typeof F=="function"){var U=function Q(){return this instanceof Q?Reflect.construct(F,arguments,this.constructor):F.apply(this,arguments)};U.prototype=F.prototype}else U={};return Object.defineProperty(U,"__esModule",{value:!0}),Object.keys(s).forEach(function(Q){var e=Object.getOwnPropertyDescriptor(s,Q);Object.defineProperty(U,Q,e.get?e:{enumerable:!0,get:function(){return s[Q]}})}),U}var axios$2={exports:{}},bind,hasRequiredBind;function requireBind(){return hasRequiredBind||(hasRequiredBind=1,bind=function(F,U){return function(){for(var e=new Array(arguments.length),B=0;B<e.length;B++)e[B]=arguments[B];return F.apply(U,e)}}),bind}var utils$1,hasRequiredUtils$1;function requireUtils$1(){if(hasRequiredUtils$1)return utils$1;hasRequiredUtils$1=1;var s=requireBind(),F=Object.prototype.toString;function U(X){return F.call(X)==="[object Array]"}function Q(X){return typeof X>"u"}function e(X){return X!==null&&!Q(X)&&X.constructor!==null&&!Q(X.constructor)&&typeof X.constructor.isBuffer=="function"&&X.constructor.isBuffer(X)}function B(X){return F.call(X)==="[object ArrayBuffer]"}function t(X){return typeof FormData<"u"&&X instanceof FormData}function n(X){var T;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?T=ArrayBuffer.isView(X):T=X&&X.buffer&&X.buffer instanceof ArrayBuffer,T}function a(X){return typeof X=="string"}function i(X){return typeof X=="number"}function L(X){return X!==null&&typeof X=="object"}function r(X){if(F.call(X)!=="[object Object]")return!1;var T=Object.getPrototypeOf(X);return T===null||T===Object.prototype}function R(X){return F.call(X)==="[object Date]"}function V(X){return F.call(X)==="[object File]"}function x(X){return F.call(X)==="[object Blob]"}function u(X){return F.call(X)==="[object Function]"}function c(X){return L(X)&&u(X.pipe)}function S(X){return typeof URLSearchParams<"u"&&X instanceof URLSearchParams}function Z(X){return X.trim?X.trim():X.replace(/^\s+|\s+$/g,"")}function h(){return typeof navigator<"u"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window<"u"&&typeof document<"u"}function o(X,T){if(!(X===null||typeof X>"u"))if(typeof X!="object"&&(X=[X]),U(X))for(var M=0,D=X.length;M<D;M++)T.call(null,X[M],M,X);else for(var Y in X)Object.prototype.hasOwnProperty.call(X,Y)&&T.call(null,X[Y],Y,X)}function E(){var X={};function T(Y,k){r(X[k])&&r(Y)?X[k]=E(X[k],Y):r(Y)?X[k]=E({},Y):U(Y)?X[k]=Y.slice():X[k]=Y}for(var M=0,D=arguments.length;M<D;M++)o(arguments[M],T);return X}function p(X,T,M){return o(T,function(Y,k){M&&typeof Y=="function"?X[k]=s(Y,M):X[k]=Y}),X}function m(X){return X.charCodeAt(0)===65279&&(X=X.slice(1)),X}return utils$1={isArray:U,isArrayBuffer:B,isBuffer:e,isFormData:t,isArrayBufferView:n,isString:a,isNumber:i,isObject:L,isPlainObject:r,isUndefined:Q,isDate:R,isFile:V,isBlob:x,isFunction:u,isStream:c,isURLSearchParams:S,isStandardBrowserEnv:h,forEach:o,merge:E,extend:p,trim:Z,stripBOM:m},utils$1}var buildURL,hasRequiredBuildURL;function requireBuildURL(){if(hasRequiredBuildURL)return buildURL;hasRequiredBuildURL=1;var s=requireUtils$1();function F(U){return encodeURIComponent(U).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}return buildURL=function(Q,e,B){if(!e)return Q;var t;if(B)t=B(e);else if(s.isURLSearchParams(e))t=e.toString();else{var n=[];s.forEach(e,function(L,r){L===null||typeof L>"u"||(s.isArray(L)?r=r+"[]":L=[L],s.forEach(L,function(V){s.isDate(V)?V=V.toISOString():s.isObject(V)&&(V=JSON.stringify(V)),n.push(F(r)+"="+F(V))}))}),t=n.join("&")}if(t){var a=Q.indexOf("#");a!==-1&&(Q=Q.slice(0,a)),Q+=(Q.indexOf("?")===-1?"?":"&")+t}return Q},buildURL}var InterceptorManager_1,hasRequiredInterceptorManager;function requireInterceptorManager(){if(hasRequiredInterceptorManager)return InterceptorManager_1;hasRequiredInterceptorManager=1;var s=requireUtils$1();function F(){this.handlers=[]}return F.prototype.use=function(Q,e,B){return this.handlers.push({fulfilled:Q,rejected:e,synchronous:B?B.synchronous:!1,runWhen:B?B.runWhen:null}),this.handlers.length-1},F.prototype.eject=function(Q){this.handlers[Q]&&(this.handlers[Q]=null)},F.prototype.forEach=function(Q){s.forEach(this.handlers,function(B){B!==null&&Q(B)})},InterceptorManager_1=F,InterceptorManager_1}var normalizeHeaderName,hasRequiredNormalizeHeaderName;function requireNormalizeHeaderName(){if(hasRequiredNormalizeHeaderName)return normalizeHeaderName;hasRequiredNormalizeHeaderName=1;var s=requireUtils$1();return normalizeHeaderName=function(U,Q){s.forEach(U,function(B,t){t!==Q&&t.toUpperCase()===Q.toUpperCase()&&(U[Q]=B,delete U[t])})},normalizeHeaderName}var enhanceError,hasRequiredEnhanceError;function requireEnhanceError(){return hasRequiredEnhanceError||(hasRequiredEnhanceError=1,enhanceError=function(F,U,Q,e,B){return F.config=U,Q&&(F.code=Q),F.request=e,F.response=B,F.isAxiosError=!0,F.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},F}),enhanceError}var createError,hasRequiredCreateError;function requireCreateError(){if(hasRequiredCreateError)return createError;hasRequiredCreateError=1;var s=requireEnhanceError();return createError=function(U,Q,e,B,t){var n=new Error(U);return s(n,Q,e,B,t)},createError}var settle,hasRequiredSettle;function requireSettle(){if(hasRequiredSettle)return settle;hasRequiredSettle=1;var s=requireCreateError();return settle=function(U,Q,e){var B=e.config.validateStatus;!e.status||!B||B(e.status)?U(e):Q(s("Request failed with status code "+e.status,e.config,null,e.request,e))},settle}var cookies,hasRequiredCookies;function requireCookies(){if(hasRequiredCookies)return cookies;hasRequiredCookies=1;var s=requireUtils$1();return cookies=s.isStandardBrowserEnv()?function(){return{write:function(Q,e,B,t,n,a){var i=[];i.push(Q+"="+encodeURIComponent(e)),s.isNumber(B)&&i.push("expires="+new Date(B).toGMTString()),s.isString(t)&&i.push("path="+t),s.isString(n)&&i.push("domain="+n),a===!0&&i.push("secure"),document.cookie=i.join("; ")},read:function(Q){var e=document.cookie.match(new RegExp("(^|;\\s*)("+Q+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove:function(Q){this.write(Q,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}(),cookies}var isAbsoluteURL,hasRequiredIsAbsoluteURL;function requireIsAbsoluteURL(){return hasRequiredIsAbsoluteURL||(hasRequiredIsAbsoluteURL=1,isAbsoluteURL=function(F){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(F)}),isAbsoluteURL}var combineURLs,hasRequiredCombineURLs;function requireCombineURLs(){return hasRequiredCombineURLs||(hasRequiredCombineURLs=1,combineURLs=function(F,U){return U?F.replace(/\/+$/,"")+"/"+U.replace(/^\/+/,""):F}),combineURLs}var buildFullPath,hasRequiredBuildFullPath;function requireBuildFullPath(){if(hasRequiredBuildFullPath)return buildFullPath;hasRequiredBuildFullPath=1;var s=requireIsAbsoluteURL(),F=requireCombineURLs();return buildFullPath=function(Q,e){return Q&&!s(e)?F(Q,e):e},buildFullPath}var parseHeaders,hasRequiredParseHeaders;function requireParseHeaders(){if(hasRequiredParseHeaders)return parseHeaders;hasRequiredParseHeaders=1;var s=requireUtils$1(),F=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];return parseHeaders=function(Q){var e={},B,t,n;return Q&&s.forEach(Q.split(`
|
|
2
|
+
`),function(i){if(n=i.indexOf(":"),B=s.trim(i.substr(0,n)).toLowerCase(),t=s.trim(i.substr(n+1)),B){if(e[B]&&F.indexOf(B)>=0)return;B==="set-cookie"?e[B]=(e[B]?e[B]:[]).concat([t]):e[B]=e[B]?e[B]+", "+t:t}}),e},parseHeaders}var isURLSameOrigin,hasRequiredIsURLSameOrigin;function requireIsURLSameOrigin(){if(hasRequiredIsURLSameOrigin)return isURLSameOrigin;hasRequiredIsURLSameOrigin=1;var s=requireUtils$1();return isURLSameOrigin=s.isStandardBrowserEnv()?function(){var U=/(msie|trident)/i.test(navigator.userAgent),Q=document.createElement("a"),e;function B(t){var n=t;return U&&(Q.setAttribute("href",n),n=Q.href),Q.setAttribute("href",n),{href:Q.href,protocol:Q.protocol?Q.protocol.replace(/:$/,""):"",host:Q.host,search:Q.search?Q.search.replace(/^\?/,""):"",hash:Q.hash?Q.hash.replace(/^#/,""):"",hostname:Q.hostname,port:Q.port,pathname:Q.pathname.charAt(0)==="/"?Q.pathname:"/"+Q.pathname}}return e=B(window.location.href),function(n){var a=s.isString(n)?B(n):n;return a.protocol===e.protocol&&a.host===e.host}}():function(){return function(){return!0}}(),isURLSameOrigin}var xhr,hasRequiredXhr;function requireXhr(){if(hasRequiredXhr)return xhr;hasRequiredXhr=1;var s=requireUtils$1(),F=requireSettle(),U=requireCookies(),Q=requireBuildURL(),e=requireBuildFullPath(),B=requireParseHeaders(),t=requireIsURLSameOrigin(),n=requireCreateError();return xhr=function(i){return new Promise(function(r,R){var V=i.data,x=i.headers,u=i.responseType;s.isFormData(V)&&delete x["Content-Type"];var c=new XMLHttpRequest;if(i.auth){var S=i.auth.username||"",Z=i.auth.password?unescape(encodeURIComponent(i.auth.password)):"";x.Authorization="Basic "+btoa(S+":"+Z)}var h=e(i.baseURL,i.url);c.open(i.method.toUpperCase(),Q(h,i.params,i.paramsSerializer),!0),c.timeout=i.timeout;function o(){if(c){var p="getAllResponseHeaders"in c?B(c.getAllResponseHeaders()):null,m=!u||u==="text"||u==="json"?c.responseText:c.response,X={data:m,status:c.status,statusText:c.statusText,headers:p,config:i,request:c};F(r,R,X),c=null}}if("onloadend"in c?c.onloadend=o:c.onreadystatechange=function(){!c||c.readyState!==4||c.status===0&&!(c.responseURL&&c.responseURL.indexOf("file:")===0)||setTimeout(o)},c.onabort=function(){c&&(R(n("Request aborted",i,"ECONNABORTED",c)),c=null)},c.onerror=function(){R(n("Network Error",i,null,c)),c=null},c.ontimeout=function(){var m="timeout of "+i.timeout+"ms exceeded";i.timeoutErrorMessage&&(m=i.timeoutErrorMessage),R(n(m,i,i.transitional&&i.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",c)),c=null},s.isStandardBrowserEnv()){var E=(i.withCredentials||t(h))&&i.xsrfCookieName?U.read(i.xsrfCookieName):void 0;E&&(x[i.xsrfHeaderName]=E)}"setRequestHeader"in c&&s.forEach(x,function(m,X){typeof V>"u"&&X.toLowerCase()==="content-type"?delete x[X]:c.setRequestHeader(X,m)}),s.isUndefined(i.withCredentials)||(c.withCredentials=!!i.withCredentials),u&&u!=="json"&&(c.responseType=i.responseType),typeof i.onDownloadProgress=="function"&&c.addEventListener("progress",i.onDownloadProgress),typeof i.onUploadProgress=="function"&&c.upload&&c.upload.addEventListener("progress",i.onUploadProgress),i.cancelToken&&i.cancelToken.promise.then(function(m){c&&(c.abort(),R(m),c=null)}),V||(V=null),c.send(V)})},xhr}var defaults_1,hasRequiredDefaults;function requireDefaults(){if(hasRequiredDefaults)return defaults_1;hasRequiredDefaults=1;var s=requireUtils$1(),F=requireNormalizeHeaderName(),U=requireEnhanceError(),Q={"Content-Type":"application/x-www-form-urlencoded"};function e(a,i){!s.isUndefined(a)&&s.isUndefined(a["Content-Type"])&&(a["Content-Type"]=i)}function B(){var a;return(typeof XMLHttpRequest<"u"||typeof process<"u"&&Object.prototype.toString.call(process)==="[object process]")&&(a=requireXhr()),a}function t(a,i,L){if(s.isString(a))try{return(i||JSON.parse)(a),s.trim(a)}catch(r){if(r.name!=="SyntaxError")throw r}return(L||JSON.stringify)(a)}var n={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:B(),transformRequest:[function(i,L){return F(L,"Accept"),F(L,"Content-Type"),s.isFormData(i)||s.isArrayBuffer(i)||s.isBuffer(i)||s.isStream(i)||s.isFile(i)||s.isBlob(i)?i:s.isArrayBufferView(i)?i.buffer:s.isURLSearchParams(i)?(e(L,"application/x-www-form-urlencoded;charset=utf-8"),i.toString()):s.isObject(i)||L&&L["Content-Type"]==="application/json"?(e(L,"application/json"),t(i)):i}],transformResponse:[function(i){var L=this.transitional,r=L&&L.silentJSONParsing,R=L&&L.forcedJSONParsing,V=!r&&this.responseType==="json";if(V||R&&s.isString(i)&&i.length)try{return JSON.parse(i)}catch(x){if(V)throw x.name==="SyntaxError"?U(x,this,"E_JSON_PARSE"):x}return i}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(i){return i>=200&&i<300}};return n.headers={common:{Accept:"application/json, text/plain, */*"}},s.forEach(["delete","get","head"],function(i){n.headers[i]={}}),s.forEach(["post","put","patch"],function(i){n.headers[i]=s.merge(Q)}),defaults_1=n,defaults_1}var transformData,hasRequiredTransformData;function requireTransformData(){if(hasRequiredTransformData)return transformData;hasRequiredTransformData=1;var s=requireUtils$1(),F=requireDefaults();return transformData=function(Q,e,B){var t=this||F;return s.forEach(B,function(a){Q=a.call(t,Q,e)}),Q},transformData}var isCancel,hasRequiredIsCancel;function requireIsCancel(){return hasRequiredIsCancel||(hasRequiredIsCancel=1,isCancel=function(F){return!!(F&&F.__CANCEL__)}),isCancel}var dispatchRequest,hasRequiredDispatchRequest;function requireDispatchRequest(){if(hasRequiredDispatchRequest)return dispatchRequest;hasRequiredDispatchRequest=1;var s=requireUtils$1(),F=requireTransformData(),U=requireIsCancel(),Q=requireDefaults();function e(B){B.cancelToken&&B.cancelToken.throwIfRequested()}return dispatchRequest=function(t){e(t),t.headers=t.headers||{},t.data=F.call(t,t.data,t.headers,t.transformRequest),t.headers=s.merge(t.headers.common||{},t.headers[t.method]||{},t.headers),s.forEach(["delete","get","head","post","put","patch","common"],function(i){delete t.headers[i]});var n=t.adapter||Q.adapter;return n(t).then(function(i){return e(t),i.data=F.call(t,i.data,i.headers,t.transformResponse),i},function(i){return U(i)||(e(t),i&&i.response&&(i.response.data=F.call(t,i.response.data,i.response.headers,t.transformResponse))),Promise.reject(i)})},dispatchRequest}var mergeConfig,hasRequiredMergeConfig;function requireMergeConfig(){if(hasRequiredMergeConfig)return mergeConfig;hasRequiredMergeConfig=1;var s=requireUtils$1();return mergeConfig=function(U,Q){Q=Q||{};var e={},B=["url","method","data"],t=["headers","auth","proxy","params"],n=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],a=["validateStatus"];function i(V,x){return s.isPlainObject(V)&&s.isPlainObject(x)?s.merge(V,x):s.isPlainObject(x)?s.merge({},x):s.isArray(x)?x.slice():x}function L(V){s.isUndefined(Q[V])?s.isUndefined(U[V])||(e[V]=i(void 0,U[V])):e[V]=i(U[V],Q[V])}s.forEach(B,function(x){s.isUndefined(Q[x])||(e[x]=i(void 0,Q[x]))}),s.forEach(t,L),s.forEach(n,function(x){s.isUndefined(Q[x])?s.isUndefined(U[x])||(e[x]=i(void 0,U[x])):e[x]=i(void 0,Q[x])}),s.forEach(a,function(x){x in Q?e[x]=i(U[x],Q[x]):x in U&&(e[x]=i(void 0,U[x]))});var r=B.concat(t).concat(n).concat(a),R=Object.keys(U).concat(Object.keys(Q)).filter(function(x){return r.indexOf(x)===-1});return s.forEach(R,L),e},mergeConfig}const version="0.21.4",require$$0$1={version};var validator,hasRequiredValidator;function requireValidator(){if(hasRequiredValidator)return validator;hasRequiredValidator=1;var s=require$$0$1,F={};["object","boolean","number","function","string","symbol"].forEach(function(t,n){F[t]=function(i){return typeof i===t||"a"+(n<1?"n ":" ")+t}});var U={},Q=s.version.split(".");function e(t,n){for(var a=n?n.split("."):Q,i=t.split("."),L=0;L<3;L++){if(a[L]>i[L])return!0;if(a[L]<i[L])return!1}return!1}F.transitional=function(n,a,i){var L=a&&e(a);function r(R,V){return"[Axios v"+s.version+"] Transitional option '"+R+"'"+V+(i?". "+i:"")}return function(R,V,x){if(n===!1)throw new Error(r(V," has been removed in "+a));return L&&!U[V]&&(U[V]=!0,console.warn(r(V," has been deprecated since v"+a+" and will be removed in the near future"))),n?n(R,V,x):!0}};function B(t,n,a){if(typeof t!="object")throw new TypeError("options must be an object");for(var i=Object.keys(t),L=i.length;L-- >0;){var r=i[L],R=n[r];if(R){var V=t[r],x=V===void 0||R(V,r,t);if(x!==!0)throw new TypeError("option "+r+" must be "+x);continue}if(a!==!0)throw Error("Unknown option "+r)}}return validator={isOlderVersion:e,assertOptions:B,validators:F},validator}var Axios_1,hasRequiredAxios$2;function requireAxios$2(){if(hasRequiredAxios$2)return Axios_1;hasRequiredAxios$2=1;var s=requireUtils$1(),F=requireBuildURL(),U=requireInterceptorManager(),Q=requireDispatchRequest(),e=requireMergeConfig(),B=requireValidator(),t=B.validators;function n(a){this.defaults=a,this.interceptors={request:new U,response:new U}}return n.prototype.request=function(i){typeof i=="string"?(i=arguments[1]||{},i.url=arguments[0]):i=i||{},i=e(this.defaults,i),i.method?i.method=i.method.toLowerCase():this.defaults.method?i.method=this.defaults.method.toLowerCase():i.method="get";var L=i.transitional;L!==void 0&&B.assertOptions(L,{silentJSONParsing:t.transitional(t.boolean,"1.0.0"),forcedJSONParsing:t.transitional(t.boolean,"1.0.0"),clarifyTimeoutError:t.transitional(t.boolean,"1.0.0")},!1);var r=[],R=!0;this.interceptors.request.forEach(function(o){typeof o.runWhen=="function"&&o.runWhen(i)===!1||(R=R&&o.synchronous,r.unshift(o.fulfilled,o.rejected))});var V=[];this.interceptors.response.forEach(function(o){V.push(o.fulfilled,o.rejected)});var x;if(!R){var u=[Q,void 0];for(Array.prototype.unshift.apply(u,r),u=u.concat(V),x=Promise.resolve(i);u.length;)x=x.then(u.shift(),u.shift());return x}for(var c=i;r.length;){var S=r.shift(),Z=r.shift();try{c=S(c)}catch(h){Z(h);break}}try{x=Q(c)}catch(h){return Promise.reject(h)}for(;V.length;)x=x.then(V.shift(),V.shift());return x},n.prototype.getUri=function(i){return i=e(this.defaults,i),F(i.url,i.params,i.paramsSerializer).replace(/^\?/,"")},s.forEach(["delete","get","head","options"],function(i){n.prototype[i]=function(L,r){return this.request(e(r||{},{method:i,url:L,data:(r||{}).data}))}}),s.forEach(["post","put","patch"],function(i){n.prototype[i]=function(L,r,R){return this.request(e(R||{},{method:i,url:L,data:r}))}}),Axios_1=n,Axios_1}var Cancel_1,hasRequiredCancel;function requireCancel(){if(hasRequiredCancel)return Cancel_1;hasRequiredCancel=1;function s(F){this.message=F}return s.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},s.prototype.__CANCEL__=!0,Cancel_1=s,Cancel_1}var CancelToken_1,hasRequiredCancelToken;function requireCancelToken(){if(hasRequiredCancelToken)return CancelToken_1;hasRequiredCancelToken=1;var s=requireCancel();function F(U){if(typeof U!="function")throw new TypeError("executor must be a function.");var Q;this.promise=new Promise(function(t){Q=t});var e=this;U(function(t){e.reason||(e.reason=new s(t),Q(e.reason))})}return F.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},F.source=function(){var Q,e=new F(function(t){Q=t});return{token:e,cancel:Q}},CancelToken_1=F,CancelToken_1}var spread,hasRequiredSpread;function requireSpread(){return hasRequiredSpread||(hasRequiredSpread=1,spread=function(F){return function(Q){return F.apply(null,Q)}}),spread}var isAxiosError,hasRequiredIsAxiosError;function requireIsAxiosError(){return hasRequiredIsAxiosError||(hasRequiredIsAxiosError=1,isAxiosError=function(F){return typeof F=="object"&&F.isAxiosError===!0}),isAxiosError}var hasRequiredAxios$1;function requireAxios$1(){if(hasRequiredAxios$1)return axios$2.exports;hasRequiredAxios$1=1;var s=requireUtils$1(),F=requireBind(),U=requireAxios$2(),Q=requireMergeConfig(),e=requireDefaults();function B(n){var a=new U(n),i=F(U.prototype.request,a);return s.extend(i,U.prototype,a),s.extend(i,a),i}var t=B(e);return t.Axios=U,t.create=function(a){return B(Q(t.defaults,a))},t.Cancel=requireCancel(),t.CancelToken=requireCancelToken(),t.isCancel=requireIsCancel(),t.all=function(a){return Promise.all(a)},t.spread=requireSpread(),t.isAxiosError=requireIsAxiosError(),axios$2.exports=t,axios$2.exports.default=t,axios$2.exports}var axios$1,hasRequiredAxios;function requireAxios(){return hasRequiredAxios||(hasRequiredAxios=1,axios$1=requireAxios$1()),axios$1}var axiosExports=requireAxios();const axios=getDefaultExportFromCjs(axiosExports);function filterFields(){return(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).filter(F=>F.field_value!=null)}function convertObjToUrlParams(){let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const F=Object.entries(s);return F.length?`&${F.map(U=>{let[Q,e]=U;return`${Q}=${e}`}).join("&")}`:""}var type,hasRequiredType;function requireType(){return hasRequiredType||(hasRequiredType=1,type=TypeError),type}const __viteBrowserExternal={},__viteBrowserExternal$1=Object.freeze(Object.defineProperty({__proto__:null,default:__viteBrowserExternal},Symbol.toStringTag,{value:"Module"})),require$$0=getAugmentedNamespace(__viteBrowserExternal$1);var objectInspect,hasRequiredObjectInspect;function requireObjectInspect(){if(hasRequiredObjectInspect)return objectInspect;hasRequiredObjectInspect=1;var s=typeof Map=="function"&&Map.prototype,F=Object.getOwnPropertyDescriptor&&s?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,U=s&&F&&typeof F.get=="function"?F.get:null,Q=s&&Map.prototype.forEach,e=typeof Set=="function"&&Set.prototype,B=Object.getOwnPropertyDescriptor&&e?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,t=e&&B&&typeof B.get=="function"?B.get:null,n=e&&Set.prototype.forEach,a=typeof WeakMap=="function"&&WeakMap.prototype,i=a?WeakMap.prototype.has:null,L=typeof WeakSet=="function"&&WeakSet.prototype,r=L?WeakSet.prototype.has:null,R=typeof WeakRef=="function"&&WeakRef.prototype,V=R?WeakRef.prototype.deref:null,x=Boolean.prototype.valueOf,u=Object.prototype.toString,c=Function.prototype.toString,S=String.prototype.match,Z=String.prototype.slice,h=String.prototype.replace,o=String.prototype.toUpperCase,E=String.prototype.toLowerCase,p=RegExp.prototype.test,m=Array.prototype.concat,X=Array.prototype.join,T=Array.prototype.slice,M=Math.floor,D=typeof BigInt=="function"?BigInt.prototype.valueOf:null,Y=Object.getOwnPropertySymbols,k=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,g=typeof Symbol=="function"&&typeof Symbol.iterator=="object",K=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===g||!0)?Symbol.toStringTag:null,nF=Object.prototype.propertyIsEnumerable,BF=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(b){return b.__proto__}:null);function w(b,G){if(b===1/0||b===-1/0||b!==b||b&&b>-1e3&&b<1e3||p.call(/e/,G))return G;var QF=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof b=="number"){var sF=b<0?-M(-b):M(b);if(sF!==b){var iF=String(sF),q=Z.call(G,iF.length+1);return h.call(iF,QF,"$&_")+"."+h.call(h.call(q,/([0-9]{3})/g,"$&_"),/_$/,"")}}return h.call(G,QF,"$&_")}var cF=require$$0,rF=cF.custom,VF=oF(rF)?rF:null,GF={__proto__:null,double:'"',single:"'"},W={__proto__:null,double:/(["\\])/g,single:/(['\\])/g};objectInspect=function b(G,QF,sF,iF){var q=QF||{};if(RF(q,"quoteStyle")&&!RF(GF,q.quoteStyle))throw new TypeError('option "quoteStyle" must be "single" or "double"');if(RF(q,"maxStringLength")&&(typeof q.maxStringLength=="number"?q.maxStringLength<0&&q.maxStringLength!==1/0:q.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var TF=RF(q,"customInspect")?q.customInspect:!0;if(typeof TF!="boolean"&&TF!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(RF(q,"indent")&&q.indent!==null&&q.indent!==" "&&!(parseInt(q.indent,10)===q.indent&&q.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(RF(q,"numericSeparator")&&typeof q.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var DF=q.numericSeparator;if(typeof G>"u")return"undefined";if(G===null)return"null";if(typeof G=="boolean")return G?"true":"false";if(typeof G=="string")return _(G,q);if(typeof G=="number"){if(G===0)return 1/0/G>0?"0":"-0";var pF=String(G);return DF?w(G,pF):pF}if(typeof G=="bigint"){var MF=String(G)+"n";return DF?w(G,MF):MF}var vF=typeof q.depth>"u"?5:q.depth;if(typeof sF>"u"&&(sF=0),sF>=vF&&vF>0&&typeof G=="object")return lF(G)?"[Array]":"[Object]";var kF=EF(q,sF);if(typeof iF>"u")iF=[];else if(WF(iF,G)>=0)return"[Circular]";function bF(HF,OF,iU){if(OF&&(iF=T.call(iF),iF.push(OF)),iU){var BU={depth:q.depth};return RF(q,"quoteStyle")&&(BU.quoteStyle=q.quoteStyle),b(HF,BU,sF+1,iF)}return b(HF,q,sF+1,iF)}if(typeof G=="function"&&!z(G)){var QU=gF(G),eU=ZF(G,bF);return"[Function"+(QU?": "+QU:" (anonymous)")+"]"+(eU.length>0?" { "+X.call(eU,", ")+" }":"")}if(oF(G)){var AF=g?h.call(String(G),/^(Symbol\(.*\))_[^)]*$/,"$1"):k.call(G);return typeof G=="object"&&!g?mF(AF):AF}if(jF(G)){for(var IF="<"+E.call(String(G.nodeName)),zF=G.attributes||[],PF=0;PF<zF.length;PF++)IF+=" "+zF[PF].name+"="+J(f(zF[PF].value),"double",q);return IF+=">",G.childNodes&&G.childNodes.length&&(IF+="..."),IF+="</"+E.call(String(G.nodeName))+">",IF}if(lF(G)){if(G.length===0)return"[]";var qF=ZF(G,bF);return kF&&!j(qF)?"["+_F(qF,kF)+"]":"[ "+X.call(qF,", ")+" ]"}if(H(G)){var hF=ZF(G,bF);return!("cause"in Error.prototype)&&"cause"in G&&!nF.call(G,"cause")?"{ ["+String(G)+"] "+X.call(m.call("[cause]: "+bF(G.cause),hF),", ")+" }":hF.length===0?"["+String(G)+"]":"{ ["+String(G)+"] "+X.call(hF,", ")+" }"}if(typeof G=="object"&&TF){if(VF&&typeof G[VF]=="function"&&cF)return cF(G,{depth:vF-sF});if(TF!=="symbol"&&typeof G.inspect=="function")return G.inspect()}if(NF(G)){var dF=[];return Q&&Q.call(G,function(HF,OF){dF.push(bF(OF,G,!0)+" => "+bF(HF,G))}),LF("Map",U.call(G),dF,kF)}if(fF(G)){var sU=[];return n&&n.call(G,function(HF){sU.push(bF(HF,G))}),LF("Set",t.call(G),sU,kF)}if(P(G))return v("WeakMap");if(tU(G))return v("WeakSet");if(JF(G))return v("WeakRef");if(UF(G))return mF(bF(Number(G)));if(uF(G))return mF(bF(D.call(G)));if(aF(G))return mF(x.call(G));if(O(G))return mF(bF(String(G)));if(typeof window<"u"&&G===window)return"{ [object Window] }";if(typeof globalThis<"u"&&G===globalThis||typeof commonjsGlobal<"u"&&G===commonjsGlobal)return"{ [object globalThis] }";if(!A(G)&&!z(G)){var wF=ZF(G,bF),YF=BF?BF(G)===Object.prototype:G instanceof Object||G.constructor===Object,$F=G instanceof Object?"":"null prototype",KF=!YF&&K&&Object(G)===G&&K in G?Z.call(XF(G),8,-1):$F?"Object":"",lU=YF||typeof G.constructor!="function"?"":G.constructor.name?G.constructor.name+" ":"",FU=lU+(KF||$F?"["+X.call(m.call([],KF||[],$F||[]),": ")+"] ":"");return wF.length===0?FU+"{}":kF?FU+"{"+_F(wF,kF)+"}":FU+"{ "+X.call(wF,", ")+" }"}return String(G)};function J(b,G,QF){var sF=QF.quoteStyle||G,iF=GF[sF];return iF+b+iF}function f(b){return h.call(String(b),/"/g,""")}function $(b){return!K||!(typeof b=="object"&&(K in b||typeof b[K]<"u"))}function lF(b){return XF(b)==="[object Array]"&&$(b)}function A(b){return XF(b)==="[object Date]"&&$(b)}function z(b){return XF(b)==="[object RegExp]"&&$(b)}function H(b){return XF(b)==="[object Error]"&&$(b)}function O(b){return XF(b)==="[object String]"&&$(b)}function UF(b){return XF(b)==="[object Number]"&&$(b)}function aF(b){return XF(b)==="[object Boolean]"&&$(b)}function oF(b){if(g)return b&&typeof b=="object"&&b instanceof Symbol;if(typeof b=="symbol")return!0;if(!b||typeof b!="object"||!k)return!1;try{return k.call(b),!0}catch{}return!1}function uF(b){if(!b||typeof b!="object"||!D)return!1;try{return D.call(b),!0}catch{}return!1}var xF=Object.prototype.hasOwnProperty||function(b){return b in this};function RF(b,G){return xF.call(b,G)}function XF(b){return u.call(b)}function gF(b){if(b.name)return b.name;var G=S.call(c.call(b),/^function\s*([\w$]+)/);return G?G[1]:null}function WF(b,G){if(b.indexOf)return b.indexOf(G);for(var QF=0,sF=b.length;QF<sF;QF++)if(b[QF]===G)return QF;return-1}function NF(b){if(!U||!b||typeof b!="object")return!1;try{U.call(b);try{t.call(b)}catch{return!0}return b instanceof Map}catch{}return!1}function P(b){if(!i||!b||typeof b!="object")return!1;try{i.call(b,i);try{r.call(b,r)}catch{return!0}return b instanceof WeakMap}catch{}return!1}function JF(b){if(!V||!b||typeof b!="object")return!1;try{return V.call(b),!0}catch{}return!1}function fF(b){if(!t||!b||typeof b!="object")return!1;try{t.call(b);try{U.call(b)}catch{return!0}return b instanceof Set}catch{}return!1}function tU(b){if(!r||!b||typeof b!="object")return!1;try{r.call(b,r);try{i.call(b,i)}catch{return!0}return b instanceof WeakSet}catch{}return!1}function jF(b){return!b||typeof b!="object"?!1:typeof HTMLElement<"u"&&b instanceof HTMLElement?!0:typeof b.nodeName=="string"&&typeof b.getAttribute=="function"}function _(b,G){if(b.length>G.maxStringLength){var QF=b.length-G.maxStringLength,sF="... "+QF+" more character"+(QF>1?"s":"");return _(Z.call(b,0,G.maxStringLength),G)+sF}var iF=W[G.quoteStyle||"single"];iF.lastIndex=0;var q=h.call(h.call(b,iF,"\\$1"),/[\x00-\x1f]/g,eF);return J(q,"single",G)}function eF(b){var G=b.charCodeAt(0),QF={8:"b",9:"t",10:"n",12:"f",13:"r"}[G];return QF?"\\"+QF:"\\x"+(G<16?"0":"")+o.call(G.toString(16))}function mF(b){return"Object("+b+")"}function v(b){return b+" { ? }"}function LF(b,G,QF,sF){var iF=sF?_F(QF,sF):X.call(QF,", ");return b+" ("+G+") {"+iF+"}"}function j(b){for(var G=0;G<b.length;G++)if(WF(b[G],`
|
|
3
|
+
`)>=0)return!1;return!0}function EF(b,G){var QF;if(b.indent===" ")QF=" ";else if(typeof b.indent=="number"&&b.indent>0)QF=X.call(Array(b.indent+1)," ");else return null;return{base:QF,prev:X.call(Array(G+1),QF)}}function _F(b,G){if(b.length===0)return"";var QF=`
|
|
4
|
+
`+G.prev+G.base;return QF+X.call(b,","+QF)+`
|
|
5
|
+
`+G.prev}function ZF(b,G){var QF=lF(b),sF=[];if(QF){sF.length=b.length;for(var iF=0;iF<b.length;iF++)sF[iF]=RF(b,iF)?G(b[iF],b):""}var q=typeof Y=="function"?Y(b):[],TF;if(g){TF={};for(var DF=0;DF<q.length;DF++)TF["$"+q[DF]]=q[DF]}for(var pF in b)RF(b,pF)&&(QF&&String(Number(pF))===pF&&pF<b.length||g&&TF["$"+pF]instanceof Symbol||(p.call(/[^\w$]/,pF)?sF.push(G(pF,b)+": "+G(b[pF],b)):sF.push(pF+": "+G(b[pF],b))));if(typeof Y=="function")for(var MF=0;MF<q.length;MF++)nF.call(b,q[MF])&&sF.push("["+G(q[MF])+"]: "+G(b[q[MF]],b));return sF}return objectInspect}var sideChannelList,hasRequiredSideChannelList;function requireSideChannelList(){if(hasRequiredSideChannelList)return sideChannelList;hasRequiredSideChannelList=1;var s=requireObjectInspect(),F=requireType(),U=function(n,a,i){for(var L=n,r;(r=L.next)!=null;L=r)if(r.key===a)return L.next=r.next,i||(r.next=n.next,n.next=r),r},Q=function(n,a){if(n){var i=U(n,a);return i&&i.value}},e=function(n,a,i){var L=U(n,a);L?L.value=i:n.next={key:a,next:n.next,value:i}},B=function(n,a){return n?!!U(n,a):!1},t=function(n,a){if(n)return U(n,a,!0)};return sideChannelList=function(){var a,i={assert:function(L){if(!i.has(L))throw new F("Side channel does not contain "+s(L))},delete:function(L){var r=a&&a.next,R=t(a,L);return R&&r&&r===R&&(a=void 0),!!R},get:function(L){return Q(a,L)},has:function(L){return B(a,L)},set:function(L,r){a||(a={next:void 0}),e(a,L,r)}};return i},sideChannelList}var esObjectAtoms,hasRequiredEsObjectAtoms;function requireEsObjectAtoms(){return hasRequiredEsObjectAtoms||(hasRequiredEsObjectAtoms=1,esObjectAtoms=Object),esObjectAtoms}var esErrors,hasRequiredEsErrors;function requireEsErrors(){return hasRequiredEsErrors||(hasRequiredEsErrors=1,esErrors=Error),esErrors}var _eval,hasRequired_eval;function require_eval(){return hasRequired_eval||(hasRequired_eval=1,_eval=EvalError),_eval}var range,hasRequiredRange;function requireRange(){return hasRequiredRange||(hasRequiredRange=1,range=RangeError),range}var ref,hasRequiredRef;function requireRef(){return hasRequiredRef||(hasRequiredRef=1,ref=ReferenceError),ref}var syntax,hasRequiredSyntax;function requireSyntax(){return hasRequiredSyntax||(hasRequiredSyntax=1,syntax=SyntaxError),syntax}var uri,hasRequiredUri;function requireUri(){return hasRequiredUri||(hasRequiredUri=1,uri=URIError),uri}var abs,hasRequiredAbs;function requireAbs(){return hasRequiredAbs||(hasRequiredAbs=1,abs=Math.abs),abs}var floor,hasRequiredFloor;function requireFloor(){return hasRequiredFloor||(hasRequiredFloor=1,floor=Math.floor),floor}var max,hasRequiredMax;function requireMax(){return hasRequiredMax||(hasRequiredMax=1,max=Math.max),max}var min,hasRequiredMin;function requireMin(){return hasRequiredMin||(hasRequiredMin=1,min=Math.min),min}var pow,hasRequiredPow;function requirePow(){return hasRequiredPow||(hasRequiredPow=1,pow=Math.pow),pow}var round,hasRequiredRound;function requireRound(){return hasRequiredRound||(hasRequiredRound=1,round=Math.round),round}var _isNaN,hasRequired_isNaN;function require_isNaN(){return hasRequired_isNaN||(hasRequired_isNaN=1,_isNaN=Number.isNaN||function(F){return F!==F}),_isNaN}var sign,hasRequiredSign;function requireSign(){if(hasRequiredSign)return sign;hasRequiredSign=1;var s=require_isNaN();return sign=function(U){return s(U)||U===0?U:U<0?-1:1},sign}var gOPD,hasRequiredGOPD;function requireGOPD(){return hasRequiredGOPD||(hasRequiredGOPD=1,gOPD=Object.getOwnPropertyDescriptor),gOPD}var gopd,hasRequiredGopd;function requireGopd(){if(hasRequiredGopd)return gopd;hasRequiredGopd=1;var s=requireGOPD();if(s)try{s([],"length")}catch{s=null}return gopd=s,gopd}var esDefineProperty,hasRequiredEsDefineProperty;function requireEsDefineProperty(){if(hasRequiredEsDefineProperty)return esDefineProperty;hasRequiredEsDefineProperty=1;var s=Object.defineProperty||!1;if(s)try{s({},"a",{value:1})}catch{s=!1}return esDefineProperty=s,esDefineProperty}var shams,hasRequiredShams;function requireShams(){return hasRequiredShams||(hasRequiredShams=1,shams=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var F={},U=Symbol("test"),Q=Object(U);if(typeof U=="string"||Object.prototype.toString.call(U)!=="[object Symbol]"||Object.prototype.toString.call(Q)!=="[object Symbol]")return!1;var e=42;F[U]=e;for(var B in F)return!1;if(typeof Object.keys=="function"&&Object.keys(F).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(F).length!==0)return!1;var t=Object.getOwnPropertySymbols(F);if(t.length!==1||t[0]!==U||!Object.prototype.propertyIsEnumerable.call(F,U))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var n=Object.getOwnPropertyDescriptor(F,U);if(n.value!==e||n.enumerable!==!0)return!1}return!0}),shams}var hasSymbols,hasRequiredHasSymbols;function requireHasSymbols(){if(hasRequiredHasSymbols)return hasSymbols;hasRequiredHasSymbols=1;var s=typeof Symbol<"u"&&Symbol,F=requireShams();return hasSymbols=function(){return typeof s!="function"||typeof Symbol!="function"||typeof s("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:F()},hasSymbols}var Reflect_getPrototypeOf,hasRequiredReflect_getPrototypeOf;function requireReflect_getPrototypeOf(){return hasRequiredReflect_getPrototypeOf||(hasRequiredReflect_getPrototypeOf=1,Reflect_getPrototypeOf=typeof Reflect<"u"&&Reflect.getPrototypeOf||null),Reflect_getPrototypeOf}var Object_getPrototypeOf,hasRequiredObject_getPrototypeOf;function requireObject_getPrototypeOf(){if(hasRequiredObject_getPrototypeOf)return Object_getPrototypeOf;hasRequiredObject_getPrototypeOf=1;var s=requireEsObjectAtoms();return Object_getPrototypeOf=s.getPrototypeOf||null,Object_getPrototypeOf}var implementation,hasRequiredImplementation;function requireImplementation(){if(hasRequiredImplementation)return implementation;hasRequiredImplementation=1;var s="Function.prototype.bind called on incompatible ",F=Object.prototype.toString,U=Math.max,Q="[object Function]",e=function(a,i){for(var L=[],r=0;r<a.length;r+=1)L[r]=a[r];for(var R=0;R<i.length;R+=1)L[R+a.length]=i[R];return L},B=function(a,i){for(var L=[],r=i,R=0;r<a.length;r+=1,R+=1)L[R]=a[r];return L},t=function(n,a){for(var i="",L=0;L<n.length;L+=1)i+=n[L],L+1<n.length&&(i+=a);return i};return implementation=function(a){var i=this;if(typeof i!="function"||F.apply(i)!==Q)throw new TypeError(s+i);for(var L=B(arguments,1),r,R=function(){if(this instanceof r){var S=i.apply(this,e(L,arguments));return Object(S)===S?S:this}return i.apply(a,e(L,arguments))},V=U(0,i.length-L.length),x=[],u=0;u<V;u++)x[u]="$"+u;if(r=Function("binder","return function ("+t(x,",")+"){ return binder.apply(this,arguments); }")(R),i.prototype){var c=function(){};c.prototype=i.prototype,r.prototype=new c,c.prototype=null}return r},implementation}var functionBind,hasRequiredFunctionBind;function requireFunctionBind(){if(hasRequiredFunctionBind)return functionBind;hasRequiredFunctionBind=1;var s=requireImplementation();return functionBind=Function.prototype.bind||s,functionBind}var functionCall,hasRequiredFunctionCall;function requireFunctionCall(){return hasRequiredFunctionCall||(hasRequiredFunctionCall=1,functionCall=Function.prototype.call),functionCall}var functionApply,hasRequiredFunctionApply;function requireFunctionApply(){return hasRequiredFunctionApply||(hasRequiredFunctionApply=1,functionApply=Function.prototype.apply),functionApply}var reflectApply,hasRequiredReflectApply;function requireReflectApply(){return hasRequiredReflectApply||(hasRequiredReflectApply=1,reflectApply=typeof Reflect<"u"&&Reflect&&Reflect.apply),reflectApply}var actualApply,hasRequiredActualApply;function requireActualApply(){if(hasRequiredActualApply)return actualApply;hasRequiredActualApply=1;var s=requireFunctionBind(),F=requireFunctionApply(),U=requireFunctionCall(),Q=requireReflectApply();return actualApply=Q||s.call(U,F),actualApply}var callBindApplyHelpers,hasRequiredCallBindApplyHelpers;function requireCallBindApplyHelpers(){if(hasRequiredCallBindApplyHelpers)return callBindApplyHelpers;hasRequiredCallBindApplyHelpers=1;var s=requireFunctionBind(),F=requireType(),U=requireFunctionCall(),Q=requireActualApply();return callBindApplyHelpers=function(B){if(B.length<1||typeof B[0]!="function")throw new F("a function is required");return Q(s,U,B)},callBindApplyHelpers}var get$1,hasRequiredGet;function requireGet(){if(hasRequiredGet)return get$1;hasRequiredGet=1;var s=requireCallBindApplyHelpers(),F=requireGopd(),U;try{U=[].__proto__===Array.prototype}catch(t){if(!t||typeof t!="object"||!("code"in t)||t.code!=="ERR_PROTO_ACCESS")throw t}var Q=!!U&&F&&F(Object.prototype,"__proto__"),e=Object,B=e.getPrototypeOf;return get$1=Q&&typeof Q.get=="function"?s([Q.get]):typeof B=="function"?function(n){return B(n==null?n:e(n))}:!1,get$1}var getProto,hasRequiredGetProto;function requireGetProto(){if(hasRequiredGetProto)return getProto;hasRequiredGetProto=1;var s=requireReflect_getPrototypeOf(),F=requireObject_getPrototypeOf(),U=requireGet();return getProto=s?function(e){return s(e)}:F?function(e){if(!e||typeof e!="object"&&typeof e!="function")throw new TypeError("getProto: not an object");return F(e)}:U?function(e){return U(e)}:null,getProto}var hasown,hasRequiredHasown;function requireHasown(){if(hasRequiredHasown)return hasown;hasRequiredHasown=1;var s=Function.prototype.call,F=Object.prototype.hasOwnProperty,U=requireFunctionBind();return hasown=U.call(s,F),hasown}var getIntrinsic,hasRequiredGetIntrinsic;function requireGetIntrinsic(){if(hasRequiredGetIntrinsic)return getIntrinsic;hasRequiredGetIntrinsic=1;var s,F=requireEsObjectAtoms(),U=requireEsErrors(),Q=require_eval(),e=requireRange(),B=requireRef(),t=requireSyntax(),n=requireType(),a=requireUri(),i=requireAbs(),L=requireFloor(),r=requireMax(),R=requireMin(),V=requirePow(),x=requireRound(),u=requireSign(),c=Function,S=function(z){try{return c('"use strict"; return ('+z+").constructor;")()}catch{}},Z=requireGopd(),h=requireEsDefineProperty(),o=function(){throw new n},E=Z?function(){try{return arguments.callee,o}catch{try{return Z(arguments,"callee").get}catch{return o}}}():o,p=requireHasSymbols()(),m=requireGetProto(),X=requireObject_getPrototypeOf(),T=requireReflect_getPrototypeOf(),M=requireFunctionApply(),D=requireFunctionCall(),Y={},k=typeof Uint8Array>"u"||!m?s:m(Uint8Array),g={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?s:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?s:ArrayBuffer,"%ArrayIteratorPrototype%":p&&m?m([][Symbol.iterator]()):s,"%AsyncFromSyncIteratorPrototype%":s,"%AsyncFunction%":Y,"%AsyncGenerator%":Y,"%AsyncGeneratorFunction%":Y,"%AsyncIteratorPrototype%":Y,"%Atomics%":typeof Atomics>"u"?s:Atomics,"%BigInt%":typeof BigInt>"u"?s:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?s:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?s:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?s:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":U,"%eval%":eval,"%EvalError%":Q,"%Float16Array%":typeof Float16Array>"u"?s:Float16Array,"%Float32Array%":typeof Float32Array>"u"?s:Float32Array,"%Float64Array%":typeof Float64Array>"u"?s:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?s:FinalizationRegistry,"%Function%":c,"%GeneratorFunction%":Y,"%Int8Array%":typeof Int8Array>"u"?s:Int8Array,"%Int16Array%":typeof Int16Array>"u"?s:Int16Array,"%Int32Array%":typeof Int32Array>"u"?s:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":p&&m?m(m([][Symbol.iterator]())):s,"%JSON%":typeof JSON=="object"?JSON:s,"%Map%":typeof Map>"u"?s:Map,"%MapIteratorPrototype%":typeof Map>"u"||!p||!m?s:m(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":F,"%Object.getOwnPropertyDescriptor%":Z,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?s:Promise,"%Proxy%":typeof Proxy>"u"?s:Proxy,"%RangeError%":e,"%ReferenceError%":B,"%Reflect%":typeof Reflect>"u"?s:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?s:Set,"%SetIteratorPrototype%":typeof Set>"u"||!p||!m?s:m(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?s:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":p&&m?m(""[Symbol.iterator]()):s,"%Symbol%":p?Symbol:s,"%SyntaxError%":t,"%ThrowTypeError%":E,"%TypedArray%":k,"%TypeError%":n,"%Uint8Array%":typeof Uint8Array>"u"?s:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?s:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?s:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?s:Uint32Array,"%URIError%":a,"%WeakMap%":typeof WeakMap>"u"?s:WeakMap,"%WeakRef%":typeof WeakRef>"u"?s:WeakRef,"%WeakSet%":typeof WeakSet>"u"?s:WeakSet,"%Function.prototype.call%":D,"%Function.prototype.apply%":M,"%Object.defineProperty%":h,"%Object.getPrototypeOf%":X,"%Math.abs%":i,"%Math.floor%":L,"%Math.max%":r,"%Math.min%":R,"%Math.pow%":V,"%Math.round%":x,"%Math.sign%":u,"%Reflect.getPrototypeOf%":T};if(m)try{null.error}catch(z){var K=m(m(z));g["%Error.prototype%"]=K}var nF=function z(H){var O;if(H==="%AsyncFunction%")O=S("async function () {}");else if(H==="%GeneratorFunction%")O=S("function* () {}");else if(H==="%AsyncGeneratorFunction%")O=S("async function* () {}");else if(H==="%AsyncGenerator%"){var UF=z("%AsyncGeneratorFunction%");UF&&(O=UF.prototype)}else if(H==="%AsyncIteratorPrototype%"){var aF=z("%AsyncGenerator%");aF&&m&&(O=m(aF.prototype))}return g[H]=O,O},BF={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},w=requireFunctionBind(),cF=requireHasown(),rF=w.call(D,Array.prototype.concat),VF=w.call(M,Array.prototype.splice),GF=w.call(D,String.prototype.replace),W=w.call(D,String.prototype.slice),J=w.call(D,RegExp.prototype.exec),f=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,$=/\\(\\)?/g,lF=function(H){var O=W(H,0,1),UF=W(H,-1);if(O==="%"&&UF!=="%")throw new t("invalid intrinsic syntax, expected closing `%`");if(UF==="%"&&O!=="%")throw new t("invalid intrinsic syntax, expected opening `%`");var aF=[];return GF(H,f,function(oF,uF,xF,RF){aF[aF.length]=xF?GF(RF,$,"$1"):uF||oF}),aF},A=function(H,O){var UF=H,aF;if(cF(BF,UF)&&(aF=BF[UF],UF="%"+aF[0]+"%"),cF(g,UF)){var oF=g[UF];if(oF===Y&&(oF=nF(UF)),typeof oF>"u"&&!O)throw new n("intrinsic "+H+" exists, but is not available. Please file an issue!");return{alias:aF,name:UF,value:oF}}throw new t("intrinsic "+H+" does not exist!")};return getIntrinsic=function(H,O){if(typeof H!="string"||H.length===0)throw new n("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof O!="boolean")throw new n('"allowMissing" argument must be a boolean');if(J(/^%?[^%]*%?$/,H)===null)throw new t("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var UF=lF(H),aF=UF.length>0?UF[0]:"",oF=A("%"+aF+"%",O),uF=oF.name,xF=oF.value,RF=!1,XF=oF.alias;XF&&(aF=XF[0],VF(UF,rF([0,1],XF)));for(var gF=1,WF=!0;gF<UF.length;gF+=1){var NF=UF[gF],P=W(NF,0,1),JF=W(NF,-1);if((P==='"'||P==="'"||P==="`"||JF==='"'||JF==="'"||JF==="`")&&P!==JF)throw new t("property names with quotes must have matching quotes");if((NF==="constructor"||!WF)&&(RF=!0),aF+="."+NF,uF="%"+aF+"%",cF(g,uF))xF=g[uF];else if(xF!=null){if(!(NF in xF)){if(!O)throw new n("base intrinsic for "+H+" exists, but the property is not available.");return}if(Z&&gF+1>=UF.length){var fF=Z(xF,NF);WF=!!fF,WF&&"get"in fF&&!("originalValue"in fF.get)?xF=fF.get:xF=xF[NF]}else WF=cF(xF,NF),xF=xF[NF];WF&&!RF&&(g[uF]=xF)}}return xF},getIntrinsic}var callBound,hasRequiredCallBound;function requireCallBound(){if(hasRequiredCallBound)return callBound;hasRequiredCallBound=1;var s=requireGetIntrinsic(),F=requireCallBindApplyHelpers(),U=F([s("%String.prototype.indexOf%")]);return callBound=function(e,B){var t=s(e,!!B);return typeof t=="function"&&U(e,".prototype.")>-1?F([t]):t},callBound}var sideChannelMap,hasRequiredSideChannelMap;function requireSideChannelMap(){if(hasRequiredSideChannelMap)return sideChannelMap;hasRequiredSideChannelMap=1;var s=requireGetIntrinsic(),F=requireCallBound(),U=requireObjectInspect(),Q=requireType(),e=s("%Map%",!0),B=F("Map.prototype.get",!0),t=F("Map.prototype.set",!0),n=F("Map.prototype.has",!0),a=F("Map.prototype.delete",!0),i=F("Map.prototype.size",!0);return sideChannelMap=!!e&&function(){var r,R={assert:function(V){if(!R.has(V))throw new Q("Side channel does not contain "+U(V))},delete:function(V){if(r){var x=a(r,V);return i(r)===0&&(r=void 0),x}return!1},get:function(V){if(r)return B(r,V)},has:function(V){return r?n(r,V):!1},set:function(V,x){r||(r=new e),t(r,V,x)}};return R},sideChannelMap}var sideChannelWeakmap,hasRequiredSideChannelWeakmap;function requireSideChannelWeakmap(){if(hasRequiredSideChannelWeakmap)return sideChannelWeakmap;hasRequiredSideChannelWeakmap=1;var s=requireGetIntrinsic(),F=requireCallBound(),U=requireObjectInspect(),Q=requireSideChannelMap(),e=requireType(),B=s("%WeakMap%",!0),t=F("WeakMap.prototype.get",!0),n=F("WeakMap.prototype.set",!0),a=F("WeakMap.prototype.has",!0),i=F("WeakMap.prototype.delete",!0);return sideChannelWeakmap=B?function(){var r,R,V={assert:function(x){if(!V.has(x))throw new e("Side channel does not contain "+U(x))},delete:function(x){if(B&&x&&(typeof x=="object"||typeof x=="function")){if(r)return i(r,x)}else if(Q&&R)return R.delete(x);return!1},get:function(x){return B&&x&&(typeof x=="object"||typeof x=="function")&&r?t(r,x):R&&R.get(x)},has:function(x){return B&&x&&(typeof x=="object"||typeof x=="function")&&r?a(r,x):!!R&&R.has(x)},set:function(x,u){B&&x&&(typeof x=="object"||typeof x=="function")?(r||(r=new B),n(r,x,u)):Q&&(R||(R=Q()),R.set(x,u))}};return V}:Q,sideChannelWeakmap}var sideChannel,hasRequiredSideChannel;function requireSideChannel(){if(hasRequiredSideChannel)return sideChannel;hasRequiredSideChannel=1;var s=requireType(),F=requireObjectInspect(),U=requireSideChannelList(),Q=requireSideChannelMap(),e=requireSideChannelWeakmap(),B=e||Q||U;return sideChannel=function(){var n,a={assert:function(i){if(!a.has(i))throw new s("Side channel does not contain "+F(i))},delete:function(i){return!!n&&n.delete(i)},get:function(i){return n&&n.get(i)},has:function(i){return!!n&&n.has(i)},set:function(i,L){n||(n=B()),n.set(i,L)}};return a},sideChannel}var formats,hasRequiredFormats;function requireFormats(){if(hasRequiredFormats)return formats;hasRequiredFormats=1;var s=String.prototype.replace,F=/%20/g,U={RFC1738:"RFC1738",RFC3986:"RFC3986"};return formats={default:U.RFC3986,formatters:{RFC1738:function(Q){return s.call(Q,F,"+")},RFC3986:function(Q){return String(Q)}},RFC1738:U.RFC1738,RFC3986:U.RFC3986},formats}var utils,hasRequiredUtils;function requireUtils(){if(hasRequiredUtils)return utils;hasRequiredUtils=1;var s=requireFormats(),F=Object.prototype.hasOwnProperty,U=Array.isArray,Q=function(){for(var c=[],S=0;S<256;++S)c.push("%"+((S<16?"0":"")+S.toString(16)).toUpperCase());return c}(),e=function(S){for(;S.length>1;){var Z=S.pop(),h=Z.obj[Z.prop];if(U(h)){for(var o=[],E=0;E<h.length;++E)typeof h[E]<"u"&&o.push(h[E]);Z.obj[Z.prop]=o}}},B=function(S,Z){for(var h=Z&&Z.plainObjects?{__proto__:null}:{},o=0;o<S.length;++o)typeof S[o]<"u"&&(h[o]=S[o]);return h},t=function c(S,Z,h){if(!Z)return S;if(typeof Z!="object"&&typeof Z!="function"){if(U(S))S.push(Z);else if(S&&typeof S=="object")(h&&(h.plainObjects||h.allowPrototypes)||!F.call(Object.prototype,Z))&&(S[Z]=!0);else return[S,Z];return S}if(!S||typeof S!="object")return[S].concat(Z);var o=S;return U(S)&&!U(Z)&&(o=B(S,h)),U(S)&&U(Z)?(Z.forEach(function(E,p){if(F.call(S,p)){var m=S[p];m&&typeof m=="object"&&E&&typeof E=="object"?S[p]=c(m,E,h):S.push(E)}else S[p]=E}),S):Object.keys(Z).reduce(function(E,p){var m=Z[p];return F.call(E,p)?E[p]=c(E[p],m,h):E[p]=m,E},o)},n=function(S,Z){return Object.keys(Z).reduce(function(h,o){return h[o]=Z[o],h},S)},a=function(c,S,Z){var h=c.replace(/\+/g," ");if(Z==="iso-8859-1")return h.replace(/%[0-9a-f]{2}/gi,unescape);try{return decodeURIComponent(h)}catch{return h}},i=1024,L=function(S,Z,h,o,E){if(S.length===0)return S;var p=S;if(typeof S=="symbol"?p=Symbol.prototype.toString.call(S):typeof S!="string"&&(p=String(S)),h==="iso-8859-1")return escape(p).replace(/%u[0-9a-f]{4}/gi,function(k){return"%26%23"+parseInt(k.slice(2),16)+"%3B"});for(var m="",X=0;X<p.length;X+=i){for(var T=p.length>=i?p.slice(X,X+i):p,M=[],D=0;D<T.length;++D){var Y=T.charCodeAt(D);if(Y===45||Y===46||Y===95||Y===126||Y>=48&&Y<=57||Y>=65&&Y<=90||Y>=97&&Y<=122||E===s.RFC1738&&(Y===40||Y===41)){M[M.length]=T.charAt(D);continue}if(Y<128){M[M.length]=Q[Y];continue}if(Y<2048){M[M.length]=Q[192|Y>>6]+Q[128|Y&63];continue}if(Y<55296||Y>=57344){M[M.length]=Q[224|Y>>12]+Q[128|Y>>6&63]+Q[128|Y&63];continue}D+=1,Y=65536+((Y&1023)<<10|T.charCodeAt(D)&1023),M[M.length]=Q[240|Y>>18]+Q[128|Y>>12&63]+Q[128|Y>>6&63]+Q[128|Y&63]}m+=M.join("")}return m},r=function(S){for(var Z=[{obj:{o:S},prop:"o"}],h=[],o=0;o<Z.length;++o)for(var E=Z[o],p=E.obj[E.prop],m=Object.keys(p),X=0;X<m.length;++X){var T=m[X],M=p[T];typeof M=="object"&&M!==null&&h.indexOf(M)===-1&&(Z.push({obj:p,prop:T}),h.push(M))}return e(Z),S},R=function(S){return Object.prototype.toString.call(S)==="[object RegExp]"},V=function(S){return!S||typeof S!="object"?!1:!!(S.constructor&&S.constructor.isBuffer&&S.constructor.isBuffer(S))},x=function(S,Z){return[].concat(S,Z)},u=function(S,Z){if(U(S)){for(var h=[],o=0;o<S.length;o+=1)h.push(Z(S[o]));return h}return Z(S)};return utils={arrayToObject:B,assign:n,combine:x,compact:r,decode:a,encode:L,isBuffer:V,isRegExp:R,maybeMap:u,merge:t},utils}var stringify_1,hasRequiredStringify;function requireStringify(){if(hasRequiredStringify)return stringify_1;hasRequiredStringify=1;var s=requireSideChannel(),F=requireUtils(),U=requireFormats(),Q=Object.prototype.hasOwnProperty,e={brackets:function(c){return c+"[]"},comma:"comma",indices:function(c,S){return c+"["+S+"]"},repeat:function(c){return c}},B=Array.isArray,t=Array.prototype.push,n=function(u,c){t.apply(u,B(c)?c:[c])},a=Date.prototype.toISOString,i=U.default,L={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,commaRoundTrip:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:F.encode,encodeValuesOnly:!1,filter:void 0,format:i,formatter:U.formatters[i],indices:!1,serializeDate:function(c){return a.call(c)},skipNulls:!1,strictNullHandling:!1},r=function(c){return typeof c=="string"||typeof c=="number"||typeof c=="boolean"||typeof c=="symbol"||typeof c=="bigint"},R={},V=function u(c,S,Z,h,o,E,p,m,X,T,M,D,Y,k,g,K,nF,BF){for(var w=c,cF=BF,rF=0,VF=!1;(cF=cF.get(R))!==void 0&&!VF;){var GF=cF.get(c);if(rF+=1,typeof GF<"u"){if(GF===rF)throw new RangeError("Cyclic object value");VF=!0}typeof cF.get(R)>"u"&&(rF=0)}if(typeof T=="function"?w=T(S,w):w instanceof Date?w=Y(w):Z==="comma"&&B(w)&&(w=F.maybeMap(w,function(uF){return uF instanceof Date?Y(uF):uF})),w===null){if(E)return X&&!K?X(S,L.encoder,nF,"key",k):S;w=""}if(r(w)||F.isBuffer(w)){if(X){var W=K?S:X(S,L.encoder,nF,"key",k);return[g(W)+"="+g(X(w,L.encoder,nF,"value",k))]}return[g(S)+"="+g(String(w))]}var J=[];if(typeof w>"u")return J;var f;if(Z==="comma"&&B(w))K&&X&&(w=F.maybeMap(w,X)),f=[{value:w.length>0?w.join(",")||null:void 0}];else if(B(T))f=T;else{var $=Object.keys(w);f=M?$.sort(M):$}var lF=m?String(S).replace(/\./g,"%2E"):String(S),A=h&&B(w)&&w.length===1?lF+"[]":lF;if(o&&B(w)&&w.length===0)return A+"[]";for(var z=0;z<f.length;++z){var H=f[z],O=typeof H=="object"&&H&&typeof H.value<"u"?H.value:w[H];if(!(p&&O===null)){var UF=D&&m?String(H).replace(/\./g,"%2E"):String(H),aF=B(w)?typeof Z=="function"?Z(A,UF):A:A+(D?"."+UF:"["+UF+"]");BF.set(c,rF);var oF=s();oF.set(R,BF),n(J,u(O,aF,Z,h,o,E,p,m,Z==="comma"&&K&&B(w)?null:X,T,M,D,Y,k,g,K,nF,oF))}}return J},x=function(c){if(!c)return L;if(typeof c.allowEmptyArrays<"u"&&typeof c.allowEmptyArrays!="boolean")throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof c.encodeDotInKeys<"u"&&typeof c.encodeDotInKeys!="boolean")throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(c.encoder!==null&&typeof c.encoder<"u"&&typeof c.encoder!="function")throw new TypeError("Encoder has to be a function.");var S=c.charset||L.charset;if(typeof c.charset<"u"&&c.charset!=="utf-8"&&c.charset!=="iso-8859-1")throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var Z=U.default;if(typeof c.format<"u"){if(!Q.call(U.formatters,c.format))throw new TypeError("Unknown format option provided.");Z=c.format}var h=U.formatters[Z],o=L.filter;(typeof c.filter=="function"||B(c.filter))&&(o=c.filter);var E;if(c.arrayFormat in e?E=c.arrayFormat:"indices"in c?E=c.indices?"indices":"repeat":E=L.arrayFormat,"commaRoundTrip"in c&&typeof c.commaRoundTrip!="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");var p=typeof c.allowDots>"u"?c.encodeDotInKeys===!0?!0:L.allowDots:!!c.allowDots;return{addQueryPrefix:typeof c.addQueryPrefix=="boolean"?c.addQueryPrefix:L.addQueryPrefix,allowDots:p,allowEmptyArrays:typeof c.allowEmptyArrays=="boolean"?!!c.allowEmptyArrays:L.allowEmptyArrays,arrayFormat:E,charset:S,charsetSentinel:typeof c.charsetSentinel=="boolean"?c.charsetSentinel:L.charsetSentinel,commaRoundTrip:!!c.commaRoundTrip,delimiter:typeof c.delimiter>"u"?L.delimiter:c.delimiter,encode:typeof c.encode=="boolean"?c.encode:L.encode,encodeDotInKeys:typeof c.encodeDotInKeys=="boolean"?c.encodeDotInKeys:L.encodeDotInKeys,encoder:typeof c.encoder=="function"?c.encoder:L.encoder,encodeValuesOnly:typeof c.encodeValuesOnly=="boolean"?c.encodeValuesOnly:L.encodeValuesOnly,filter:o,format:Z,formatter:h,serializeDate:typeof c.serializeDate=="function"?c.serializeDate:L.serializeDate,skipNulls:typeof c.skipNulls=="boolean"?c.skipNulls:L.skipNulls,sort:typeof c.sort=="function"?c.sort:null,strictNullHandling:typeof c.strictNullHandling=="boolean"?c.strictNullHandling:L.strictNullHandling}};return stringify_1=function(u,c){var S=u,Z=x(c),h,o;typeof Z.filter=="function"?(o=Z.filter,S=o("",S)):B(Z.filter)&&(o=Z.filter,h=o);var E=[];if(typeof S!="object"||S===null)return"";var p=e[Z.arrayFormat],m=p==="comma"&&Z.commaRoundTrip;h||(h=Object.keys(S)),Z.sort&&h.sort(Z.sort);for(var X=s(),T=0;T<h.length;++T){var M=h[T],D=S[M];Z.skipNulls&&D===null||n(E,V(D,M,p,m,Z.allowEmptyArrays,Z.strictNullHandling,Z.skipNulls,Z.encodeDotInKeys,Z.encode?Z.encoder:null,Z.filter,Z.sort,Z.allowDots,Z.serializeDate,Z.format,Z.formatter,Z.encodeValuesOnly,Z.charset,X))}var Y=E.join(Z.delimiter),k=Z.addQueryPrefix===!0?"?":"";return Z.charsetSentinel&&(Z.charset==="iso-8859-1"?k+="utf8=%26%2310003%3B&":k+="utf8=%E2%9C%93&"),Y.length>0?k+Y:""},stringify_1}var parse$1,hasRequiredParse;function requireParse(){if(hasRequiredParse)return parse$1;hasRequiredParse=1;var s=requireUtils(),F=Object.prototype.hasOwnProperty,U=Array.isArray,Q={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:s.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictDepth:!1,strictNullHandling:!1,throwOnLimitExceeded:!1},e=function(R){return R.replace(/&#(\d+);/g,function(V,x){return String.fromCharCode(parseInt(x,10))})},B=function(R,V,x){if(R&&typeof R=="string"&&V.comma&&R.indexOf(",")>-1)return R.split(",");if(V.throwOnLimitExceeded&&x>=V.arrayLimit)throw new RangeError("Array limit exceeded. Only "+V.arrayLimit+" element"+(V.arrayLimit===1?"":"s")+" allowed in an array.");return R},t="utf8=%26%2310003%3B",n="utf8=%E2%9C%93",a=function(V,x){var u={__proto__:null},c=x.ignoreQueryPrefix?V.replace(/^\?/,""):V;c=c.replace(/%5B/gi,"[").replace(/%5D/gi,"]");var S=x.parameterLimit===1/0?void 0:x.parameterLimit,Z=c.split(x.delimiter,x.throwOnLimitExceeded?S+1:S);if(x.throwOnLimitExceeded&&Z.length>S)throw new RangeError("Parameter limit exceeded. Only "+S+" parameter"+(S===1?"":"s")+" allowed.");var h=-1,o,E=x.charset;if(x.charsetSentinel)for(o=0;o<Z.length;++o)Z[o].indexOf("utf8=")===0&&(Z[o]===n?E="utf-8":Z[o]===t&&(E="iso-8859-1"),h=o,o=Z.length);for(o=0;o<Z.length;++o)if(o!==h){var p=Z[o],m=p.indexOf("]="),X=m===-1?p.indexOf("="):m+1,T,M;X===-1?(T=x.decoder(p,Q.decoder,E,"key"),M=x.strictNullHandling?null:""):(T=x.decoder(p.slice(0,X),Q.decoder,E,"key"),M=s.maybeMap(B(p.slice(X+1),x,U(u[T])?u[T].length:0),function(Y){return x.decoder(Y,Q.decoder,E,"value")})),M&&x.interpretNumericEntities&&E==="iso-8859-1"&&(M=e(String(M))),p.indexOf("[]=")>-1&&(M=U(M)?[M]:M);var D=F.call(u,T);D&&x.duplicates==="combine"?u[T]=s.combine(u[T],M):(!D||x.duplicates==="last")&&(u[T]=M)}return u},i=function(R,V,x,u){var c=0;if(R.length>0&&R[R.length-1]==="[]"){var S=R.slice(0,-1).join("");c=Array.isArray(V)&&V[S]?V[S].length:0}for(var Z=u?V:B(V,x,c),h=R.length-1;h>=0;--h){var o,E=R[h];if(E==="[]"&&x.parseArrays)o=x.allowEmptyArrays&&(Z===""||x.strictNullHandling&&Z===null)?[]:s.combine([],Z);else{o=x.plainObjects?{__proto__:null}:{};var p=E.charAt(0)==="["&&E.charAt(E.length-1)==="]"?E.slice(1,-1):E,m=x.decodeDotInKeys?p.replace(/%2E/g,"."):p,X=parseInt(m,10);!x.parseArrays&&m===""?o={0:Z}:!isNaN(X)&&E!==m&&String(X)===m&&X>=0&&x.parseArrays&&X<=x.arrayLimit?(o=[],o[X]=Z):m!=="__proto__"&&(o[m]=Z)}Z=o}return Z},L=function(V,x,u,c){if(V){var S=u.allowDots?V.replace(/\.([^.[]+)/g,"[$1]"):V,Z=/(\[[^[\]]*])/,h=/(\[[^[\]]*])/g,o=u.depth>0&&Z.exec(S),E=o?S.slice(0,o.index):S,p=[];if(E){if(!u.plainObjects&&F.call(Object.prototype,E)&&!u.allowPrototypes)return;p.push(E)}for(var m=0;u.depth>0&&(o=h.exec(S))!==null&&m<u.depth;){if(m+=1,!u.plainObjects&&F.call(Object.prototype,o[1].slice(1,-1))&&!u.allowPrototypes)return;p.push(o[1])}if(o){if(u.strictDepth===!0)throw new RangeError("Input depth exceeded depth option of "+u.depth+" and strictDepth is true");p.push("["+S.slice(o.index)+"]")}return i(p,x,u,c)}},r=function(V){if(!V)return Q;if(typeof V.allowEmptyArrays<"u"&&typeof V.allowEmptyArrays!="boolean")throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof V.decodeDotInKeys<"u"&&typeof V.decodeDotInKeys!="boolean")throw new TypeError("`decodeDotInKeys` option can only be `true` or `false`, when provided");if(V.decoder!==null&&typeof V.decoder<"u"&&typeof V.decoder!="function")throw new TypeError("Decoder has to be a function.");if(typeof V.charset<"u"&&V.charset!=="utf-8"&&V.charset!=="iso-8859-1")throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");if(typeof V.throwOnLimitExceeded<"u"&&typeof V.throwOnLimitExceeded!="boolean")throw new TypeError("`throwOnLimitExceeded` option must be a boolean");var x=typeof V.charset>"u"?Q.charset:V.charset,u=typeof V.duplicates>"u"?Q.duplicates:V.duplicates;if(u!=="combine"&&u!=="first"&&u!=="last")throw new TypeError("The duplicates option must be either combine, first, or last");var c=typeof V.allowDots>"u"?V.decodeDotInKeys===!0?!0:Q.allowDots:!!V.allowDots;return{allowDots:c,allowEmptyArrays:typeof V.allowEmptyArrays=="boolean"?!!V.allowEmptyArrays:Q.allowEmptyArrays,allowPrototypes:typeof V.allowPrototypes=="boolean"?V.allowPrototypes:Q.allowPrototypes,allowSparse:typeof V.allowSparse=="boolean"?V.allowSparse:Q.allowSparse,arrayLimit:typeof V.arrayLimit=="number"?V.arrayLimit:Q.arrayLimit,charset:x,charsetSentinel:typeof V.charsetSentinel=="boolean"?V.charsetSentinel:Q.charsetSentinel,comma:typeof V.comma=="boolean"?V.comma:Q.comma,decodeDotInKeys:typeof V.decodeDotInKeys=="boolean"?V.decodeDotInKeys:Q.decodeDotInKeys,decoder:typeof V.decoder=="function"?V.decoder:Q.decoder,delimiter:typeof V.delimiter=="string"||s.isRegExp(V.delimiter)?V.delimiter:Q.delimiter,depth:typeof V.depth=="number"||V.depth===!1?+V.depth:Q.depth,duplicates:u,ignoreQueryPrefix:V.ignoreQueryPrefix===!0,interpretNumericEntities:typeof V.interpretNumericEntities=="boolean"?V.interpretNumericEntities:Q.interpretNumericEntities,parameterLimit:typeof V.parameterLimit=="number"?V.parameterLimit:Q.parameterLimit,parseArrays:V.parseArrays!==!1,plainObjects:typeof V.plainObjects=="boolean"?V.plainObjects:Q.plainObjects,strictDepth:typeof V.strictDepth=="boolean"?!!V.strictDepth:Q.strictDepth,strictNullHandling:typeof V.strictNullHandling=="boolean"?V.strictNullHandling:Q.strictNullHandling,throwOnLimitExceeded:typeof V.throwOnLimitExceeded=="boolean"?V.throwOnLimitExceeded:!1}};return parse$1=function(R,V){var x=r(V);if(R===""||R===null||typeof R>"u")return x.plainObjects?{__proto__:null}:{};for(var u=typeof R=="string"?a(R,x):R,c=x.plainObjects?{__proto__:null}:{},S=Object.keys(u),Z=0;Z<S.length;++Z){var h=S[Z],o=L(h,u[h],x,typeof R=="string");c=s.merge(c,o,x)}return x.allowSparse===!0?c:s.compact(c)},parse$1}var lib,hasRequiredLib;function requireLib(){if(hasRequiredLib)return lib;hasRequiredLib=1;var s=requireStringify(),F=requireParse(),U=requireFormats();return lib={formats:U,parse:F,stringify:s},lib}var libExports=requireLib();const qs=getDefaultExportFromCjs(libExports);class GudHubHttpsService{constructor(F){this.root=F,this.requestPromises=[]}init(F){this.getToken=F}async get(F){const U=await this.getToken(),Q=this.getHashCode(F);if(this.requestPromises[Q])return this.requestPromises[Q].promise;const e=new Promise((B,t)=>{let n;F.externalResource?n=F.url:(n=this.root+F.url,n=`${n}${/\?/.test(n)?"&":"?"}token=${U}${convertObjToUrlParams(F.params)}`),axios.get(n,{validateStatus:function(a){return a<400}}).then(function(a){a.status!=200&&console.error(`GUDHUB HTTP SERVICE: GET ERROR: ${a.status}`,a),B(a.data)}).catch(function(a){console.error(`GUDHUB HTTP SERVICE: GET ERROR: ${a.response.status}
|
|
6
|
+
`,a),console.log("Request message: ",F),a.response&&a.response.data&&console.log("Error response data: ",a.response.data),t(a)})});return this.pushPromise(e,Q),e}async post(F){const U=this.getHashCode(F);if(F.form.token=await this.getToken(),this.requestPromises[U])return this.requestPromises[U].promise;const Q=new Promise((e,B)=>{axios.post(this.root+F.url,qs.stringify(F.form),{maxBodyLength:1/0,headers:F.headers||{"Content-Type":"application/x-www-form-urlencoded"},validateStatus:function(t){return t<400}}).then(function(t){t.status!=200&&console.error(`GUDHUB HTTP SERVICE: POST ERROR: ${t.status}`,t),e(t.data)}).catch(function(t){console.error(`GUDHUB HTTP SERVICE: POST ERROR: ${t.response.status}
|
|
7
|
+
`,t),console.log("Request message: ",F),B(t)})});return this.pushPromise(Q,U),Q}axiosRequest(F){const U=this.getHashCode(F);if(this.requestPromises[U])return this.requestPromises[U].promise;let Q=F.method?F.method.toLowerCase():"get",e=F.url,B=F.headers||{};F.form&&(B["Content-Type"]="application/x-www-form-urlencoded");const t=new Promise(async(n,a)=>{try{const{data:i}=await axios[Q](e,Q==="post"?qs.stringify(F.form)||F.body:{headers:B},Q==="post"?{headers:B}:{});n(i)}catch(i){console.log("ERROR -> GUDHUB HTTP SERVICE -> SIMPLE POST :",i.message),console.log("Request message: ",F),a(i)}});return this.pushPromise(t,U),t}pushPromise(F,U){this.requestPromises[U]={promise:F,hesh:U,callback:F.then(()=>{this.destroyPromise(U)}).catch(Q=>{this.destroyPromise(U)})}}destroyPromise(F){this.requestPromises=this.requestPromises.filter(U=>U.hesh!==F)}getHashCode(F){let U=0,Q=qs.stringify(F);if(Q.length==0)return U;for(let e=0;e<Q.length;e++){let B=Q.charCodeAt(e);U=(U<<5)-U+B,U=U&U}return"h"+U}}function createId(s){let F="";for(let U in s)s.hasOwnProperty(U)&&s[U]&&(F+="."+s[U]);return F?F.substring(1):"any"}function checkParams(s,F,U){return s==null||typeof s!="string"?(console.log(`Listener type is "undefined" or not have actual 'type' for subscribe`),!1):F==null||typeof F!="object"?(console.log(`Listener destination is "undefined" or not have actual 'type' for subscribe`),!1):typeof U!="function"?(console.log("Listener is not a function for subscribe!"),!1):!0}class PipeService{constructor(){this.subscribers={},this.messageBox={}}on(F,U,Q){return checkParams(F,U,Q)&&F.split(" ").map(e=>e+":"+createId(U)).forEach(e=>{this.subscribers[e]||(this.subscribers[e]=new Set),this.subscribers[e].add(Q),this.checkMessageBox(e)}),this}emit(F,U,Q,e){return F.split(" ").forEach(B=>{const t=B+":"+createId(U);let n=!1;if(this.subscribers[t]){if(this.subscribers[t].size==0)return this.messageBox[t]=[F,U,Q,e,n],this;this.subscribers[t].forEach(function(a){a(null,Q,e)})}else this.messageBox[t]=[F,U,Q,e,n]}),this}onRoot(F,U,Q){return this.on(F,U,Q)}destroy(F,U,Q){return F.split(" ").forEach(e=>{const B=e+":"+createId(U);this.subscribers[B]&&Q&&this.subscribers[B].delete(Q),this.subscribers[B]&&!Q&&delete this.subscribers[B]}),this}checkMessageBox(F){this.cleanMesssageBox(),this.messageBox[F]&&setTimeout(()=>{this.messageBox[F]&&(this.emit(...this.messageBox[F]),this.messageBox[F][4]=!0)},0)}cleanMesssageBox(){for(let F in this.messageBox)this.messageBox[F][4]&&delete this.messageBox[F]}}function generateModulesList(s,F,U){return[{data_type:"text",name:"Text",icon:"text_icon",url:F+"/"+s+"text_data.js",type:"gh_element",technology:"angular"},{data_type:"text_opt",name:"Options",icon:"option_gh_element",url:F+"/"+s+"text_options_data.js",type:"gh_element",technology:"angular"},{data_type:"number",name:"Number",icon:"number",url:F+"/"+s+"number_data.js",type:"gh_element",technology:"angular"},{data_type:"task_board",name:"Task Board",icon:"task_board",url:F+"/"+s+"task_board_data.js",type:"gh_element",technology:"angular"},{data_type:"visualizer",name:"visualizer",icon:"visualizer",url:F+"/"+s+"visualizer_data.js",type:"gh_element",technology:"angular"},{data_type:"enterprice_visualizer",name:"Enterprice Visualizer",icon:"visualizer",private:!0,url:F+"/"+s+"enterprice_visualizer_data.js",type:"gh_element",technology:"angular"},{data_type:"email",name:"Email",icon:"email",url:F+"/"+s+"email_data.js",type:"gh_element",technology:"angular"},{data_type:"date",name:"Date",icon:"date_gh_element",url:F+"/"+s+"date_data.js",type:"gh_element",technology:"angular"},{data_type:"radio_button",name:"Radio Button",icon:"radio_button_gh_element",url:F+"/"+s+"radio_button_data.js",type:"gh_element",technology:"angular"},{data_type:"radio_icon",name:"Radio icon",icon:"radio_icon_gh_element",url:F+"/"+s+"radio_icon_data.js",type:"gh_element",technology:"angular"},{data_type:"twilio_phone",name:"Twilio Phone",icon:"phone_twilio_gh_element",url:F+"/"+s+"twilio_phone_data.js",type:"gh_element",technology:"angular"},{data_type:"twilio_autodialer",name:"Twilio Auto Dialer",icon:"twilio_dialer",url:F+"/"+s+"twillio_autodialer_data.js",type:"gh_element",technology:"angular"},{data_type:"color",name:"Color",icon:"paint_gh_element",url:F+"/"+s+"color_data.js",type:"gh_element",technology:"angular"},{data_type:"charts",name:"Charts",icon:"graph_gh_element",url:F+"/"+s+"charts_data.js",type:"gh_element",technology:"angular"},{data_type:"funnel_chart",name:"Funnel chart",icon:"funnel_chart_gh_element",url:F+"/"+s+"funnel_chart_data.js",type:"gh_element",technology:"angular"},{data_type:"add_items_from_template",name:"Add items from template",icon:"contact_second",url:F+"/"+s+"add_items_from_template_data.js",type:"gh_element",technology:"angular"},{data_type:"item_ref",name:"Reference",icon:"reference",url:F+"/"+s+"itemRef_data.js",type:"gh_element",technology:"angular"},{data_type:"calendar",name:"Calendar",icon:"calendar",js:"https://gudhub.com/modules/FullCalendar-Gh-Element/dist/main.js?t=6",css:"https://gudhub.com/modules/FullCalendar-Gh-Element/dist/style.css?t=1",type:"gh_element",technology:"class"},{data_type:"data_ref",name:"Data Reference",icon:"data_reference",url:F+"/"+s+"data_ref_data.js",type:"gh_element",technology:"angular"},{data_type:"table",name:"Table",icon:"table",url:F+"/"+s+"table_data.js",type:"gh_element",technology:"angular"},{data_type:"tile",name:"Tile table",icon:"tile_table",url:F+"/"+s+"tile_data.js",type:"gh_element",technology:"angular"},{data_type:"file",name:"File",icon:"box",url:F+"/"+s+"file_data.js",type:"gh_element",technology:"angular"},{data_type:"image",name:"Image",icon:"image",url:F+"/"+s+"image_data.js",type:"gh_element",technology:"angular"},{data_type:"text_editor",name:"Text Editor",icon:"square",url:F+"/"+s+"text_editor_data.js",type:"gh_element",technology:"angular"},{data_type:"tinymse",name:"Text editor MSE",icon:"tag",url:F+"/"+s+"tinymse_data.js",type:"gh_element",technology:"angular"},{data_type:"duration",name:"Duration",icon:"number_gh_element",url:F+"/"+s+"duration_data.js",type:"gh_element",technology:"angular"},{data_type:"user",name:"User",icon:"user_gh_element",url:F+"/"+s+"user_data.js",type:"gh_element",technology:"angular"},{data_type:"app",name:"App",icon:"app",url:F+"/"+s+"application_data.js",type:"gh_element",technology:"angular"},{data_type:"field",name:"Field",icon:"field_gh_element",url:F+"/"+s+"field_data.js",type:"gh_element",technology:"angular"},{data_type:"available",name:"Available",icon:"availible_gh_element",url:F+"/"+s+"available_data.js",type:"gh_element",technology:"angular"},{data_type:"view_list",name:"View List",icon:"view_list",url:F+"/"+s+"view_list_data.js",type:"gh_element",technology:"angular"},{data_type:"calculator",name:"Calculator",icon:"calculator",url:F+"/"+s+"calculator_data.js",type:"gh_element",technology:"angular"},{data_type:"string_join",name:"String Joiner",icon:"string_join_gh_element",url:F+"/"+s+"string_joiner_data.js",type:"gh_element",technology:"angular"},{data_type:"signature",name:"Signature",icon:"signature",url:F+"/"+s+"signature_data.js",type:"gh_element",technology:"angular"},{data_type:"sendEmail",name:"Send Email",icon:"send_email_gh_element",url:F+"/"+s+"send_email_data.js",type:"gh_element",technology:"angular"},{data_type:"boolean",name:"Yes/No",icon:"boolen_gh_element",url:F+"/"+s+"boolean_data.js",type:"gh_element",technology:"angular"},{data_type:"product_gallery",name:"Product gallery",icon:"product_gallery",url:F+"/"+s+"product_gallery_data.js",type:"gh_element",technology:"angular"},{data_type:"online_inventory",name:"Online inventory",icon:"slab",url:F+"/"+s+"online_inventory_data.js",type:"gh_element",technology:"angular"},{data_type:"3d_edges",name:"3D Edges",icon:"3d_edges_gh_element",url:F+"/"+s+"3d_edges_data.js",type:"gh_element",technology:"angular"},{data_type:"color_list",name:"Color list",icon:"circular_gh_element",url:F+"/"+s+"color_list_data.js",type:"gh_element",technology:"angular"},{data_type:"go_to_link",name:"Go to Link",icon:"go_to_link",url:F+"/"+s+"go_to_link_data.js",type:"gh_element",technology:"angular"},{data_type:"go_to_view",name:"Go to View",icon:"go_to_view",url:F+"/"+s+"go_to_view_data.js",type:"gh_element",technology:"angular"},{data_type:"range",name:"Range",icon:"range_gh_element",url:F+"/"+s+"range_data.js",type:"gh_element",technology:"angular"},{data_type:"barcode",name:"Barcode",icon:"barcode_gh_element",url:F+"/"+s+"barcode_data.js",type:"gh_element",technology:"angular"},{data_type:"item_remote_add",name:"Item remote add",icon:"remote_add_gh_element",url:F+"/"+s+"item_remote_add_data.js",type:"gh_element",technology:"angular"},{data_type:"item_remote_update",name:"Item remote update",icon:"remote_update_gh_element",url:F+"/"+s+"item_remote_update_data.js",type:"gh_element",technology:"angular"},{data_type:"timeline",name:"Timeline",icon:"timeline",url:F+"/"+s+"timeline_data.js",type:"gh_element",technology:"angular"},{data_type:"delete_item",name:"Delete Item",icon:"rubbish",url:F+"/"+s+"delete_action.js",type:"gh_element",technology:"angular"},{data_type:"print_doc",name:"Print document",icon:"print",url:F+"/"+s+"print_doc_action.js",type:"gh_element",technology:"angular"},{data_type:"open_item",name:"Open Item",icon:"delete",private:!0,url:F+"/"+s+"open_item_action.js",type:"gh_element",technology:"angular"},{data_type:"edit_template",name:"Edit template",icon:"delete",private:!0,url:F+"/"+s+"edit_template_action.js",type:"gh_element",technology:"angular"},{data_type:"open_app",private:!0,name:"Open App",icon:"delete",url:F+"/"+s+"open_app_action.js",type:"gh_element",technology:"angular"},{data_type:"user_settings",private:!0,name:"User Settings",icon:"delete",url:F+"/"+s+"user_settings_action.js",type:"gh_element",technology:"angular"},{data_type:"app_sharing",name:"Sharing",icon:"sharing",url:F+"/"+s+"sharing_action.js",type:"gh_element",technology:"angular"},{data_type:"app_constructor",private:!0,name:"App constructor",icon:"app_constructor",url:F+"/"+s+"app_constructor_action.js",type:"gh_element",technology:"angular"},{data_type:"app_settings",name:"App Settings",icon:"configuration",url:F+"/"+s+"app_settings_action.js",type:"gh_element",technology:"angular"},{data_type:"export_csv",name:"Export CSV",icon:"export_csv",url:F+"/"+s+"export_csv.js",type:"gh_element",technology:"angular"},{data_type:"import_csv",name:"Import CSV",icon:"import_csv",url:F+"/"+s+"import_csv.js",type:"gh_element",technology:"angular"},{data_type:"add_items",name:"Add Items",icon:"plus",url:F+"/"+s+"add_items_action.js",type:"gh_element",technology:"angular"},{data_type:"update_items",name:"Update Items",icon:"update",url:F+"/"+s+"update_items_action.js",type:"gh_element",technology:"angular"},{data_type:"install_app",name:"Install",icon:"install",url:F+"/"+s+"install_app_action.js",type:"gh_element",technology:"angular"},{data_type:"search_action",name:"Search",icon:"search",url:F+"/"+s+"search_action.js",type:"gh_element",technology:"angular"},{data_type:"filter_table",name:"Table filter",icon:"filter",url:F+"/"+s+"filter_table_action.js",type:"gh_element",technology:"angular"},{data_type:"slider",name:"Slider",icon:"slider",url:F+"/"+s+"slider_data.js",type:"gh_element",technology:"angular"},{data_type:"clone_item",name:"Clone Item",icon:"double_plus",url:F+"/"+s+"clone_item_action.js",type:"gh_element",technology:"angular"},{data_type:"close",name:"Close",icon:"cross",url:F+"/"+s+"close_action.js",type:"gh_element",technology:"angular"},{data_type:"phone",name:"Phone",icon:"phone_thin",url:F+"/"+s+"phone_data.js",type:"gh_element",technology:"angular"},{data_type:"link",name:"Link",icon:"link_gh_element",url:F+"/"+s+"link_data.js",type:"gh_element",technology:"angular"},{data_type:"sheduling",name:"Sheduling",icon:"scheduling",url:F+"/"+s+"sheduling_data.js",type:"gh_element",technology:"angular"},{data_type:"qrcode",name:"QR Code",icon:"qr_code",url:F+"/"+s+"qrcode_data.js",type:"gh_element",technology:"angular"},{data_type:"graph2d",name:"Graph",icon:"graph",url:F+"/"+s+"graph2d_data.js",type:"gh_element",technology:"angular"},{data_type:"quote_tool",name:"Quote tool",icon:"quoters",url:F+"/"+s+"quote_tool_data.js",type:"gh_element",technology:"angular"},{data_type:"cards",name:"Cards",icon:"cards",url:F+"/"+s+"cards_data.js",type:"gh_element",technology:"angular"},{data_type:"jsonConstructor",name:"Json Constructor",icon:"button",url:F+"/"+s+"json_constructor_data.js",type:"gh_element",technology:"angular"},{data_type:"button",name:"Button",icon:"button",js:"https://gudhub.com/modules/button_action/button_action.js?t=1",type:"gh_element",technology:"class"},{data_type:"editorjs",name:"EditorJS",icon:"code_editor",js:"https://gudhub.com/modules/Editor-Js/dist/main.js?t=2",css:"https://gudhub.com/modules/Editor-Js/dist/style.css?t=2",type:"gh_element",technology:"class"},{data_type:"filter_advanced",name:"Filter Advanced",icon:"filter_advanced",url:F+"/"+s+"filter_advanced_data.js",type:"gh_element",technology:"angular"},{data_type:"code_editor",name:"Code Editor",icon:"code_editor",url:F+"/"+s+"code_editor_data.js",type:"gh_element",technology:"angular"},{data_type:"icon",name:"Icon",icon:"icon_gh_element",url:F+"/"+s+"icon_data.js",type:"gh_element",technology:"angular"},{data_type:"quoteRequest",name:"Quote Request",icon:"invoices",url:F+"/"+s+"quote_request_data.js",type:"gh_element",technology:"angular"},{data_type:"view_container",name:"View Container",icon:"pencil",url:F+"/"+s+"view_container_data.js",type:"gh_element",technology:"angular"},{data_type:"element_ref",name:"Element Reference",icon:"cloudSync_gh_element",url:F+"/"+s+"element_ref_data.js",type:"gh_element",technology:"angular"},{data_type:"quote_tool_objects_renderer",name:"Quote Tool Renderer",icon:"l_counter",url:F+"/"+s+"quote_tool_objects_renderer_data.js",type:"gh_element",technology:"angular"},{data_type:"quote_tool_objects_renderer_generator",name:"Quote Tool Parts Generator",icon:"l_counter_arrow",url:F+"/"+s+"quote_tool_objects_renderer_generator_data.js",type:"gh_element",technology:"angular"},{data_type:"trigger",name:"Trigger",icon:"job",url:F+"/"+s+"trigger_data.js",type:"gh_element",technology:"angular"},{data_type:"voting",name:"Voting",icon:"like_gh_element",url:F+"/"+s+"voting_data.js",type:"gh_element",technology:"angular"},{data_type:"view_tabs",name:"View Tab",icon:"tabs",url:F+"/"+s+"view_tabs.js",type:"gh_element",technology:"angular"},{data_type:"filter_tabs",name:"Filter Tabs",icon:"filter_tabs_gh_element",url:F+"/"+s+"filter_tabs.js",type:"gh_element",technology:"angular"},{data_type:"gps_coords",name:"GPS Coords",icon:"location_gh_element",url:F+"/"+s+"gps_coords.js",type:"gh_element",technology:"angular"},{data_type:"google_map",name:"Google Map",icon:"location",url:F+"/"+s+"google_map_data.js",type:"gh_element",technology:"angular"},{data_type:"data_migrations",name:"Data migrations",icon:"view_list_gh_element",url:F+"/"+s+"data_migrations.js",type:"gh_element",technology:"angular"},{data_type:"additional_settings",name:"Additional Settings",icon:"",private:!0,url:F+"/"+s+"gh_additional_settings_data.js",type:"gh_element",technology:"angular"},{data_type:"send_request",name:"Send Request",icon:"send_request_gh_element",url:F+"/"+s+"send_request_data.js",type:"gh_element",technology:"angular"},{data_type:"webcam",name:"Web camera",icon:"webcam_gh_element",url:F+"/"+s+"webcam_data.js",type:"gh_element",technology:"angular"},{data_type:"json_viewer",name:"JSON viewer",icon:"json_gh_element",url:F+"/"+s+"json_viewer_data.js",type:"gh_element",technology:"angular"},{data_type:"notifications",name:"Notifications",icon:"full_gh_element",url:F+"/"+s+"notifications_data.js",type:"gh_element",technology:"angular"},{data_type:"api",name:"API",icon:"job",url:F+"/"+s+"api_data.js",type:"gh_element",technology:"angular"},{data_type:"smart_input",name:"Smart Input",icon:"roket",url:F+"/"+s+"smart_input_data.js",type:"gh_element",technology:"angular"},{data_type:"json_editor",name:"JSON Editor",icon:"code",url:F+"/"+s+"json_editor_data.js",type:"gh_element",technology:"angular"},{data_type:"grapes_html_editor",name:"Grapes Html Editor",icon:"code_editor",url:F+"/"+s+"grapes_html_editor_data.js",type:"gh_element",technology:"angular"},{data_type:"quiz",name:"Quiz",icon:"quiz_gh_element",url:F+"/"+s+"quiz_data.js",type:"gh_element",technology:"angular"},{data_type:"password_input",name:"Password",icon:"lock_gh_element",url:F+"/"+s+"password_input_data.js",type:"gh_element",technology:"angular"},{data_type:"vs_code",name:"VS Code",icon:"code_editor",url:F+"/"+s+"vs_code_data.js",type:"gh_element",technology:"angular"},{data_type:"nested_list",name:"Nested List",icon:"scheduling",js:"https://gudhub.com/modules/Nested-List/dist/main.js?t=2",css:"https://gudhub.com/modules/Nested-List/dist/style.css?t=2",type:"gh_element",technology:"class"},{data_type:"countertop_smart_quote",name:"Countertop Smart Quote",icon:"quoters",url:F+"/"+s+"countertop_smart_quote_data.js",type:"gh_element",technology:"angular"},{data_type:"markdown_viewer",name:"Markdown viewer",icon:"code_editor",js:"https://gudhub.com/modules/markdown-it-gh-element/dist/main.js?t=1",css:"https://gudhub.com/modules/markdown-it-gh-element/dist/style.css?t=1",type:"gh_element",technology:"class"},{data_type:"html_viewer",name:"HTML Viewer",icon:"code_editor",js:"https://gudhub.com/modules/HTML-Viewer/dist/main.js?t=1",css:"https://gudhub.com/modules/HTML-Viewer/dist/style.css?t=1",type:"gh_element",technology:"class"},{data_type:"element_customizer",name:"Element Customizer",icon:"pencil",url:F+"/"+s+"element_customizer_data.js",type:"gh_element",technology:"angular"},{data_type:"task",name:"Task",icon:"table",url:F+"/"+s+"task_data.js",type:"gh_element",technology:"angular"},{data_type:"cron_picker",name:"Cron Picker",icon:"table",js:"https://gudhub.com/modules/Cron-Picker/dist/main.js?t=2",css:"https://gudhub.com/modules/Cron-Picker/dist/style.css?t=2",type:"gh_element",technology:"class"},{data_type:"balance_sheet",name:"Balance Sheet",icon:"table",js:"https://gudhub.com/modules/balance-sheet/dist/main.js?t=2",css:"https://gudhub.com/modules/balance-sheet/dist/style.css?t=2",type:"gh_element",technology:"class"},{data_type:"quote_form",name:"Quote Form",icon:"table",js:"https://gudhub.com/modules/countertop-quote-form/dist/main.js",css:"https://gudhub.com/modules/countertop-quote-form/dist/style.css",type:"gh_element",technology:"class"},{data_type:"static_nested_list",name:"Nested Filter",icon:"scheduling",js:"https://gudhub.com/modules/nested-filter/dist/main.js?t=1",css:"https://gudhub.com/modules/nested-filter/dist/style.css?t=1",type:"gh_element",technology:"class"},{data_type:"conversations",name:"Conversations",icon:"timeline",js:"https://gudhub.com/modules/conversation/dist/main.js?t=1",css:"https://gudhub.com/modules/conversation/dist/style.css?t=1",type:"gh_element",technology:"class"},{data_type:"study_journal",name:"Study Journal",icon:"timeline",js:"https://gudhub.com/modules/Study-Journal/dist/main.js?t=1",css:"https://gudhub.com/modules/Study-Journal/dist/style.css",type:"gh_element",technology:"class"},{data_type:"study_schedule",name:"Study Schedule",icon:"timeline",js:"https://gudhub.com/modules/Study-Schedule/dist/main.js?t=1",css:"https://gudhub.com/modules/Study-Schedule/dist/style.css?t=1",type:"gh_element",technology:"class"},{data_type:"avatar",name:"Avatar",icon:"user",js:"https://gudhub.com/modules/Gh-Avatar/dist/main.js?t=1",css:"https://gudhub.com/modules/Gh-Avatar/dist/style.css?t=1",type:"gh_element",technology:"class"},{data_type:"text_area",name:"Text Area",icon:"text_icon",js:"https://gudhub.com/modules/text-area-ghe/dist/main.js?t=3",css:"https://gudhub.com/modules/text-area-ghe/dist/style.css",type:"gh_element",technology:"class"},{data_type:"resource_calendar",name:"Resource Сalendar",icon:"calendar",url:F+"/"+s+"resource_calendar_data.js",type:"gh_element",technology:"angular"},{data_type:"visualizer_with_control_panel",name:"Visualizer With Control Panel",icon:"visualizer",url:F+"/"+s+"visualizer_with_control_panel_data.js",type:"gh_element",technology:"angular"},{data_type:"svg_to_pdf",name:"SVG To PDF",icon:"box",js:"https://gudhub.com/modules/SVG-to-PDF-Gh-Element/dist/main.js",css:"https://gudhub.com/modules/SVG-to-PDF-Gh-Element/dist/style.css",type:"gh_element",technology:"class"},{data_type:"recycle_bin",name:"Recycle Bin",icon:"recycle_bin",url:F+"/"+s+"recycle_bin_data.js",type:"gh_element",technology:"angular"},{data_type:"assessment_journual",name:"Assessment Journual",icon:"text_icon",js:"https://gudhub.com/modules/Assessment-Journal/dist/main.js",css:"https://gudhub.com/modules/Assessment-Journal/dist/style.css",type:"gh_element",technology:"class"},{data_type:"API",name:"API",url:F+"/"+U+"api_node.js",type:"automation",icon:"automation_api",private:!0},{data_type:"Calculator",name:"Calculator",url:F+"/"+U+"calculator.js",type:"automation",icon:"automation_calculator"},{data_type:"CompareItems",name:"Compare Items",url:F+"/"+U+"compare_items.js",type:"automation",icon:"automation_compare_items"},{data_type:"Constants",name:"Constants",url:F+"/"+U+"constants.js",type:"automation",icon:"automation_constants"},{data_type:"CreateFiles",name:"Create Files",url:F+"/"+U+"create_files.js",type:"automation",icon:"automation_create_files"},{data_type:"CreateItemsApi",name:"Create Items Api",url:F+"/"+U+"create_item_api.js",type:"automation",icon:"automation_create_items_api"},{data_type:"FileDuplicate",name:"File Duplicate",url:F+"/"+U+"file_duplicate.js",type:"automation",icon:"automation_file_duplicate"},{data_type:"Filter",name:"Filter",url:F+"/"+U+"filter_node.js",type:"automation",icon:"filter"},{data_type:"GetItemByItemRef",name:"Get Item By Item Ref",url:F+"/"+U+"get_item_by_item_ref.js",type:"automation",icon:"automation_get_item_by_item_ref"},{data_type:"GetItems",name:"Get Items",url:F+"/"+U+"get_items.js",type:"automation",icon:"automation_get_items"},{data_type:"GhElementNode",name:"Gh Element Node",url:F+"/"+U+"gh_element_node.js",type:"automation",icon:"automation_gh_element_node",private:!0,created_for:["GhElement"]},{data_type:"IfCondition",name:"If Condition",url:F+"/"+U+"if_condition.js",type:"automation",icon:"automation_if_condition"},{data_type:"ItemConstructor",name:"Item Constructor",url:F+"/"+U+"item_constructor.js",type:"automation",icon:"automation_item_constructor"},{data_type:"ItemDestructor",name:"Item Destructor",url:F+"/"+U+"item_destructor.js",type:"automation",icon:"automation_item_destructor"},{data_type:"JSONScheme",name:"JSON Scheme",url:F+"/"+U+"json_scheme.js",type:"automation",icon:"automation_json_scheme"},{data_type:"MergeItems",name:"Merge Items",url:F+"/"+U+"merge_items.js",type:"automation",icon:"automation_merge_items"},{data_type:"MessageConstructor",name:"Message Constructor",url:F+"/"+U+"message_constructor.js",type:"automation",icon:"automation_message_constructor"},{data_type:"ObjectToItem",name:"Object To Item",url:F+"/"+U+"obj_to_item.js",type:"automation",icon:"automation_object_to_item"},{data_type:"ObjectConstructor",name:"Object Constructor",url:F+"/"+U+"object_constructor.js",type:"automation",icon:"automation_object_constructor"},{data_type:"ObjectDestructor",name:"Object Destructor",url:F+"/"+U+"object_destructor.js",type:"automation",icon:"automation_object_destructor"},{data_type:"PopulateElement",name:"Populate Element",url:F+"/"+U+"populate_element.js",type:"automation",icon:"automation_populate_element",private:!0,created_for:["GhElement"]},{data_type:"PopulateItems",name:"Populate Items",url:F+"/"+U+"populate_items.js",type:"automation",icon:"automation_populate_items"},{data_type:"PopulateWithDate",name:"Populate With Date",url:F+"/"+U+"populate_with_date.js",type:"automation",icon:"automation_populate_with_date"},{data_type:"PopulateWithItemRef",name:"Populate with Item Ref",url:F+"/"+U+"populate_with_item_ref.js",type:"automation",icon:"automation_populate_with_item_ref"},{data_type:"PopUpForm",name:"Pop Up Form",url:F+"/"+U+"popup_form.js",type:"automation",icon:"automation_pop_up_form",private:!0,created_for:["Quiz","GhElement","SmartInput","Iterator"]},{data_type:"QuizForm",name:"Quiz Form",url:F+"/"+U+"quiz_form.js",type:"automation",icon:"automation_quiz_form",private:!0,created_for:["Quiz"]},{data_type:"QuizNode",name:"Quiz Node",url:F+"/"+U+"quiz_node.js",type:"automation",icon:"automation_quiz_node",private:!0},{data_type:"Request",name:"Request",url:F+"/"+U+"request_node.js",type:"automation",icon:"automation_request"},{data_type:"Response",name:"Response",url:F+"/"+U+"response_node.js",type:"automation",icon:"automation_response",private:!0,created_for:["API"]},{data_type:"SmartInput",name:"Smart Input",url:F+"/"+U+"smart_input.js",type:"automation",icon:"automation_smart_input",private:!0},{data_type:"Trigger",name:"Trigger",url:F+"/"+U+"trigger_node.js",type:"automation",icon:"automation_trigger",private:!0},{data_type:"TwilioSMS",name:"Twilio SMS",url:F+"/"+U+"twilio_sms.js",type:"automation",icon:"automation_twilio"},{data_type:"TwilioAuth",name:"Twilio Auth",url:F+"/"+U+"twilio_auth.js",type:"automation",icon:"table"},{data_type:"TwilioDevice",name:"Twilio Device",url:F+"/"+U+"twilio_device.js",type:"automation",icon:"table"},{data_type:"UpdateItemsApi",name:"Update Items Api",url:F+"/"+U+"update_items_api.js",type:"automation",icon:"automation_update_items_api"},{data_type:"GoogleCalendar",name:"Google Calendar",url:F+"/"+U+"google_calendar.js",type:"automation",icon:"calendar"},{data_type:"VerifyEmail",name:"Verify email",url:F+"/"+U+"verify_email.js",type:"automation",icon:"check_in_circle"},{data_type:"Iterator",name:"Iterator",url:F+"/"+U+"iterator.js",type:"automation",icon:"update"},{data_type:"IteratorInput",name:"Iterator Input",url:F+"/"+U+"iterator_input.js",type:"automation",icon:"arrow_right",private:!0},{data_type:"IteratorOutput",name:"Iterator Output",url:F+"/"+U+"iterator_output.js",type:"automation",icon:"arrow_right",private:!0},{data_type:"SendEmail",name:"Send email",url:F+"/"+U+"send_email.js",type:"automation",icon:"email"},{data_type:"FileReader",name:"File Reader",url:F+"/"+U+"file_reader.js",type:"automation",icon:"file"},{data_type:"WebsitesChecker",name:"Websites Checker",url:F+"/"+U+"websites_checker.js",type:"automation",icon:"world"},{data_type:"VoiceMachineDetection",name:"Voice Machine Detection",url:F+"/"+U+"voice_machine_detection.js",type:"automation",icon:"automation_calculator"},{data_type:"Task",name:"Task",url:F+"/"+U+"task.js",type:"automation",icon:"automation_calculator",private:!0},{data_type:"DeleteItems",name:"Delete Items",url:F+"/"+U+"delete_items.js",type:"automation",icon:"rubbish"},{data_type:"GoToItem",name:"Go To Item",url:F+"/"+U+"go_to_item.js",type:"automation",icon:"cursor_point"},{data_type:"FireWorks",name:"Fire Works",url:F+"/"+U+"fireworks_node.js",type:"automation",icon:"weeding_party"},{data_type:"SendMessage",name:"Send Message",url:F+"/"+U+"send_message.js",type:"automation",icon:"speech_bubble"},{data_type:"TurboSMS",name:"Turbo SMS",url:F+"/"+U+"turbo_sms.js",type:"automation",icon:"email"},{data_type:"JsCode",name:"Js Code",url:F+"/"+U+"js_code.js",type:"automation",icon:"code_editor"},{data_type:"AskChatGPT",name:"Ask ChatGPT",url:F+"/"+U+"ask_chat_gpt.js",type:"automation",icon:"ask_chat_gpt"},{data_type:"TeachChatGPT",name:"Teach ChatGPT",url:F+"/"+U+"teach_chat_gpt.js",type:"automation",icon:"teach_chat_gpt"}]}class Storage{constructor(F,U,Q){this.apps_list=[],this.users_list=[],this.user={},this.modulesList=generateModulesList(F,U,Q),this.ghComponentsPromises=[]}getMainStorage(){return this}getAppsList(){return this.apps_list}getUser(){return this.user}getUsersList(){return this.users_list}getModulesList(F,U,Q){return typeof F>"u"?this.modulesList:U==!1?this.modulesList.filter(e=>e.created_for?e.type===F&&e.private&&e.created_for.includes(Q):e.type===F&&!e.private):this.modulesList.filter(e=>e.type===F)}getModuleUrl(F){return this.modulesList.find(U=>U.data_type==F)}setUser(F){this.user=F,this.users_list.push(F)}updateUser(){let F=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};F.avatar_128&&(F.avatar_128=F.avatar_128+"?"+new Date().getTime()),F.avatar_512&&(F.avatar_512=F.avatar_512+"?"+new Date().getTime()),this.user={...this.user,...F},this.users_list=this.users_list.filter(U=>U.user_id!=F.user_id),this.users_list.push(this.user)}unsetUser(){this.user={}}getApp(F){for(let U=0;U<this.apps_list.length;U++)if(this.apps_list[U].app_id==F)return this.apps_list[U]}unsetApps(){this.apps_list=[]}updateApp(F){return this.apps_list=this.apps_list.map(U=>U.app_id==F.app_id?F:U),this.apps_list}deleteApp(F){return this.apps_list=this.apps_list.filter(U=>U.app_id!=F),this.apps_list}async updateItemsInApp(F,U){const Q=await this.getApp(U);return Q&&(Q.items_list=updateItems(F,Q.items_list,this.pipeService.emit.bind(this.pipeService),U),this.updateApp(Q)),Q}async addItemsToApp(F,U){const Q=await this.getApp(U);return Q&&(Q.items_list.push(...F),this.updateApp(Q),this.pipeService.emit("gh_items_update",{app_id:U},F)),Q}async deleteItemsInApp(F,U){const Q=await this.getApp(U);return Q&&(Q.items_list=Q.items_list.filter(e=>!F.find(B=>B.item_id==e.item_id)),this.updateApp(Q)),Q}}var browser,hasRequiredBrowser;function requireBrowser(){return hasRequiredBrowser||(hasRequiredBrowser=1,browser=function(){throw new Error("ws does not work in the browser. Browser clients must use the native WebSocket object")}),browser}var browserExports=requireBrowser();const Websocket=getDefaultExportFromCjs(browserExports),IS_BROWSER_MAIN_THREAD=typeof window<"u"&&typeof document<"u",IS_BROWSER_WORKER_THREAD=typeof self=="object"&&typeof WorkerGlobalScope<"u",IS_BROWSER=IS_BROWSER_MAIN_THREAD||IS_BROWSER_WORKER_THREAD;typeof process<"u"&&process.versions!=null&&process.versions.node!=null;class WebSocketApi{constructor(F,U){this.websocket=null,this.connected=!1,this.queue=[],this.url=F,this.auth=U,this.heartBeatTimeStemp=1e13,this.ALLOWED_HEART_BEAT_DELEY=12e3,this.firstHeartBeat=!0,this.reload=!0,this.isBrowser=IS_BROWSER_MAIN_THREAD}async addSubscription(F){const Q=`token=${await this.auth.getToken()}/~/app_id=${F}`;this.connected&&this.websocket.send(Q),this.queue.push(F)}async onOpen(){this.reload=!0,console.log("websocket opened"),this.connected=!0;const F=await this.auth.getToken();this.queue.forEach(U=>{const Q=`token=${F}/~/app_id=${U}`;this.websocket.send(Q)})}onError(F){console.log("websocket error: ",F),this.websocket.close()}onClose(){console.log("websocket close"),this.connected=!1;try{this.initWebSocket(this.onMassageHandler,this.refreshAppsHandler)}catch(F){console.log(F)}}async onMessage(F){const U=this.isBrowser?F.data:F;if(U.match(/HeartBeat/)){const Q=new Date().getTime()-this.heartBeatTimeStemp;this.ALLOWED_HEART_BEAT_DELEY<Q?await this.onConnectionLost():(this.websocket.send("HeartBeat"),this.heartBeatTimeStemp=new Date().getTime())}if(this.firstHeartBeat&&(this.connectionChecker(),this.firstHeartBeat=!1),U.match(/[{}]/)){let Q=JSON.parse(U);const e=await this.auth.getToken();Q.token!=e&&this.onMassageHandler(Q)}}initWebSocket(F,U){this.onMassageHandler=F,this.refreshAppsHandler=U,this.isBrowser?(this.websocket=new WebSocket(this.url),this.websocket.onopen=this.onOpen.bind(this),this.websocket.onerror=this.onError.bind(this),this.websocket.onclose=this.onClose.bind(this),this.websocket.onmessage=this.onMessage.bind(this)):(this.websocket=new Websocket(this.url),this.websocket.on("open",this.onOpen),this.websocket.on("error",this.onError),this.websocket.on("close",this.onClose),this.websocket.on("message",this.onMessage)),console.log("websocket initialized")}connectionChecker(){setInterval(async()=>{let F=new Date().getTime()-this.heartBeatTimeStemp;this.ALLOWED_HEART_BEAT_DELEY<F&&await this.onConnectionLost()},1e3)}async onConnectionLost(){try{await this.auth.getVersion(),this.reload&&(this.reload=!1,console.log("Connected"),this.heartBeatTimeStemp=1e13,this.websocket.close())}catch(F){console.log(F)}}}const server_url="https://gudhub.com/GudHub_Test",wss_url="wss://gudhub.com/GudHub/ws/app/",node_server_url="https://gudhub.com/api/services/prod",async_modules_path="build/latest/async_modules_node/",automation_modules_path="build/latest/automation_modules/",file_server_url="https://gudhub.com",cache_chunk_requests=!0;let useWorkerToProcessRequestsData=!0;IS_BROWSER||(useWorkerToProcessRequestsData=!1);async function filterPreparation(s,F,U){let Q=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const e=[],B={variableMethodcurrent_app(){return[Q.current_app_id||Q.app_id]},variableMethodelement_app(){return[Q.element_app_id]},variableMethodcurrent_item(){return[`${Q.current_app_id||Q.app_id}.${Q.item_id}`]},variableMethoduser_id(){return[F.getUser().user_id]},variableMethoduser_email(n){return[F.getUser().username]},variableMethodtoday(n){const a=new Date,i=new Date(a.getFullYear(),a.getMonth(),a.getDate()),L=new Date(a.getFullYear(),a.getMonth(),a.getDate()+1);return[i.valueOf().toString()+":"+L.valueOf().toString()]},variableMethodvariable(n){return[Q[n]]}};if(s)for(const n of s)if(n)switch(n.input_type){case"variable":n.valuesArray=[];for(const i of n==null?void 0:n.input_value.split(",")){const L=n.input_type+"Method"+i,r=B[L];typeof r=="function"?n.valuesArray?n.valuesArray.push(...r()):n.valuesArray=r():n.valuesArray?n.valuesArray.push(...B.variableMethodvariable(i)):n.valuesArray=B.variableMethodvariable(i)}e.push(n);break;case"field":const a=await t({app_id:Q.current_app_id||Q.app_id,item_id:Q.item_id,field_id:n.input_value});a!=null&&n.valuesArray.push(a),e.push(n);break;default:e.push(n);break}else e.push(n);function t(n){return new Promise(a=>{U.on("gh_value_get",n,function i(L,r){U.destroy("gh_value_get",n,i),a(r)}).emit("gh_value_get",{},n)})}return e}function isArray(s){return Array.isArray?Array.isArray(s):getTag(s)==="[object Array]"}function baseToString(s){if(typeof s=="string")return s;let F=s+"";return F=="0"&&1/s==-1/0?"-0":F}function toString(s){return s==null?"":baseToString(s)}function isString(s){return typeof s=="string"}function isNumber(s){return typeof s=="number"}function isBoolean(s){return s===!0||s===!1||isObjectLike(s)&&getTag(s)=="[object Boolean]"}function isObject(s){return typeof s=="object"}function isObjectLike(s){return isObject(s)&&s!==null}function isDefined(s){return s!=null}function isBlank(s){return!s.trim().length}function getTag(s){return s==null?s===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(s)}const INCORRECT_INDEX_TYPE="Incorrect 'index' type",LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY=s=>`Invalid value for key ${s}`,PATTERN_LENGTH_TOO_LARGE=s=>`Pattern length exceeds max of ${s}.`,MISSING_KEY_PROPERTY=s=>`Missing ${s} property in key`,INVALID_KEY_WEIGHT_VALUE=s=>`Property 'weight' in key '${s}' must be a positive integer`,hasOwn=Object.prototype.hasOwnProperty;class KeyStore{constructor(F){this._keys=[],this._keyMap={};let U=0;F.forEach(Q=>{let e=createKey(Q);U+=e.weight,this._keys.push(e),this._keyMap[e.id]=e,U+=e.weight}),this._keys.forEach(Q=>{Q.weight/=U})}get(F){return this._keyMap[F]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function createKey(s){let F=null,U=null,Q=null,e=1,B=null;if(isString(s)||isArray(s))Q=s,F=createKeyPath(s),U=createKeyId(s);else{if(!hasOwn.call(s,"name"))throw new Error(MISSING_KEY_PROPERTY("name"));const t=s.name;if(Q=t,hasOwn.call(s,"weight")&&(e=s.weight,e<=0))throw new Error(INVALID_KEY_WEIGHT_VALUE(t));F=createKeyPath(t),U=createKeyId(t),B=s.getFn}return{path:F,id:U,weight:e,src:Q,getFn:B}}function createKeyPath(s){return isArray(s)?s:s.split(".")}function createKeyId(s){return isArray(s)?s.join("."):s}function get(s,F){let U=[],Q=!1;const e=(B,t,n)=>{if(isDefined(B))if(!t[n])U.push(B);else{let a=t[n];const i=B[a];if(!isDefined(i))return;if(n===t.length-1&&(isString(i)||isNumber(i)||isBoolean(i)))U.push(toString(i));else if(isArray(i)){Q=!0;for(let L=0,r=i.length;L<r;L+=1)e(i[L],t,n+1)}else t.length&&e(i,t,n+1)}};return e(s,isString(F)?F.split("."):F,0),Q?U:U[0]}const MatchOptions={includeMatches:!1,findAllMatches:!1,minMatchCharLength:1},BasicOptions={isCaseSensitive:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(s,F)=>s.score===F.score?s.idx<F.idx?-1:1:s.score<F.score?-1:1},FuzzyOptions={location:0,threshold:.6,distance:100},AdvancedOptions={useExtendedSearch:!1,getFn:get,ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1};var Config={...BasicOptions,...MatchOptions,...FuzzyOptions,...AdvancedOptions};const SPACE=/[^ ]+/g;function norm(){let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1,F=arguments.length>1&&arguments[1]!==void 0?arguments[1]:3;const U=new Map,Q=Math.pow(10,F);return{get(e){const B=e.match(SPACE).length;if(U.has(B))return U.get(B);const t=1/Math.pow(B,.5*s),n=parseFloat(Math.round(t*Q)/Q);return U.set(B,n),n},clear(){U.clear()}}}class FuseIndex{constructor(){let{getFn:F=Config.getFn,fieldNormWeight:U=Config.fieldNormWeight}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.norm=norm(U,3),this.getFn=F,this.isCreated=!1,this.setIndexRecords()}setSources(){let F=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];this.docs=F}setIndexRecords(){let F=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];this.records=F}setKeys(){let F=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];this.keys=F,this._keysMap={},F.forEach((U,Q)=>{this._keysMap[U.id]=Q})}create(){this.isCreated||!this.docs.length||(this.isCreated=!0,isString(this.docs[0])?this.docs.forEach((F,U)=>{this._addString(F,U)}):this.docs.forEach((F,U)=>{this._addObject(F,U)}),this.norm.clear())}add(F){const U=this.size();isString(F)?this._addString(F,U):this._addObject(F,U)}removeAt(F){this.records.splice(F,1);for(let U=F,Q=this.size();U<Q;U+=1)this.records[U].i-=1}getValueForItemAtKeyId(F,U){return F[this._keysMap[U]]}size(){return this.records.length}_addString(F,U){if(!isDefined(F)||isBlank(F))return;let Q={v:F,i:U,n:this.norm.get(F)};this.records.push(Q)}_addObject(F,U){let Q={i:U,$:{}};this.keys.forEach((e,B)=>{let t=e.getFn?e.getFn(F):this.getFn(F,e.path);if(isDefined(t)){if(isArray(t)){let n=[];const a=[{nestedArrIndex:-1,value:t}];for(;a.length;){const{nestedArrIndex:i,value:L}=a.pop();if(isDefined(L))if(isString(L)&&!isBlank(L)){let r={v:L,i,n:this.norm.get(L)};n.push(r)}else isArray(L)&&L.forEach((r,R)=>{a.push({nestedArrIndex:R,value:r})})}Q.$[B]=n}else if(isString(t)&&!isBlank(t)){let n={v:t,n:this.norm.get(t)};Q.$[B]=n}}}),this.records.push(Q)}toJSON(){return{keys:this.keys,records:this.records}}}function createIndex(s,F){let{getFn:U=Config.getFn,fieldNormWeight:Q=Config.fieldNormWeight}=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const e=new FuseIndex({getFn:U,fieldNormWeight:Q});return e.setKeys(s.map(createKey)),e.setSources(F),e.create(),e}function parseIndex(s){let{getFn:F=Config.getFn,fieldNormWeight:U=Config.fieldNormWeight}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{keys:Q,records:e}=s,B=new FuseIndex({getFn:F,fieldNormWeight:U});return B.setKeys(Q),B.setIndexRecords(e),B}function computeScore$1(s){let{errors:F=0,currentLocation:U=0,expectedLocation:Q=0,distance:e=Config.distance,ignoreLocation:B=Config.ignoreLocation}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const t=F/s.length;if(B)return t;const n=Math.abs(Q-U);return e?t+n/e:n?1:t}function convertMaskToIndices(){let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],F=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Config.minMatchCharLength,U=[],Q=-1,e=-1,B=0;for(let t=s.length;B<t;B+=1){let n=s[B];n&&Q===-1?Q=B:!n&&Q!==-1&&(e=B-1,e-Q+1>=F&&U.push([Q,e]),Q=-1)}return s[B-1]&&B-Q>=F&&U.push([Q,B-1]),U}const MAX_BITS=32;function search(s,F,U){let{location:Q=Config.location,distance:e=Config.distance,threshold:B=Config.threshold,findAllMatches:t=Config.findAllMatches,minMatchCharLength:n=Config.minMatchCharLength,includeMatches:a=Config.includeMatches,ignoreLocation:i=Config.ignoreLocation}=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};if(F.length>MAX_BITS)throw new Error(PATTERN_LENGTH_TOO_LARGE(MAX_BITS));const L=F.length,r=s.length,R=Math.max(0,Math.min(Q,r));let V=B,x=R;const u=n>1||a,c=u?Array(r):[];let S;for(;(S=s.indexOf(F,x))>-1;){let m=computeScore$1(F,{currentLocation:S,expectedLocation:R,distance:e,ignoreLocation:i});if(V=Math.min(m,V),x=S+L,u){let X=0;for(;X<L;)c[S+X]=1,X+=1}}x=-1;let Z=[],h=1,o=L+r;const E=1<<L-1;for(let m=0;m<L;m+=1){let X=0,T=o;for(;X<T;)computeScore$1(F,{errors:m,currentLocation:R+T,expectedLocation:R,distance:e,ignoreLocation:i})<=V?X=T:o=T,T=Math.floor((o-X)/2+X);o=T;let M=Math.max(1,R-T+1),D=t?r:Math.min(R+T,r)+L,Y=Array(D+2);Y[D+1]=(1<<m)-1;for(let g=D;g>=M;g-=1){let K=g-1,nF=U[s.charAt(K)];if(u&&(c[K]=+!!nF),Y[g]=(Y[g+1]<<1|1)&nF,m&&(Y[g]|=(Z[g+1]|Z[g])<<1|1|Z[g+1]),Y[g]&E&&(h=computeScore$1(F,{errors:m,currentLocation:K,expectedLocation:R,distance:e,ignoreLocation:i}),h<=V)){if(V=h,x=K,x<=R)break;M=Math.max(1,2*R-x)}}if(computeScore$1(F,{errors:m+1,currentLocation:R,expectedLocation:R,distance:e,ignoreLocation:i})>V)break;Z=Y}const p={isMatch:x>=0,score:Math.max(.001,h)};if(u){const m=convertMaskToIndices(c,n);m.length?a&&(p.indices=m):p.isMatch=!1}return p}function createPatternAlphabet(s){let F={};for(let U=0,Q=s.length;U<Q;U+=1){const e=s.charAt(U);F[e]=(F[e]||0)|1<<Q-U-1}return F}class BitapSearch{constructor(F){let{location:U=Config.location,threshold:Q=Config.threshold,distance:e=Config.distance,includeMatches:B=Config.includeMatches,findAllMatches:t=Config.findAllMatches,minMatchCharLength:n=Config.minMatchCharLength,isCaseSensitive:a=Config.isCaseSensitive,ignoreLocation:i=Config.ignoreLocation}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.options={location:U,threshold:Q,distance:e,includeMatches:B,findAllMatches:t,minMatchCharLength:n,isCaseSensitive:a,ignoreLocation:i},this.pattern=a?F:F.toLowerCase(),this.chunks=[],!this.pattern.length)return;const L=(R,V)=>{this.chunks.push({pattern:R,alphabet:createPatternAlphabet(R),startIndex:V})},r=this.pattern.length;if(r>MAX_BITS){let R=0;const V=r%MAX_BITS,x=r-V;for(;R<x;)L(this.pattern.substr(R,MAX_BITS),R),R+=MAX_BITS;if(V){const u=r-MAX_BITS;L(this.pattern.substr(u),u)}}else L(this.pattern,0)}searchIn(F){const{isCaseSensitive:U,includeMatches:Q}=this.options;if(U||(F=F.toLowerCase()),this.pattern===F){let x={isMatch:!0,score:0};return Q&&(x.indices=[[0,F.length-1]]),x}const{location:e,distance:B,threshold:t,findAllMatches:n,minMatchCharLength:a,ignoreLocation:i}=this.options;let L=[],r=0,R=!1;this.chunks.forEach(x=>{let{pattern:u,alphabet:c,startIndex:S}=x;const{isMatch:Z,score:h,indices:o}=search(F,u,c,{location:e+S,distance:B,threshold:t,findAllMatches:n,minMatchCharLength:a,includeMatches:Q,ignoreLocation:i});Z&&(R=!0),r+=h,Z&&o&&(L=[...L,...o])});let V={isMatch:R,score:R?r/this.chunks.length:1};return R&&Q&&(V.indices=L),V}}class BaseMatch{constructor(F){this.pattern=F}static isMultiMatch(F){return getMatch(F,this.multiRegex)}static isSingleMatch(F){return getMatch(F,this.singleRegex)}search(){}}function getMatch(s,F){const U=s.match(F);return U?U[1]:null}class ExactMatch extends BaseMatch{constructor(F){super(F)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(F){const U=F===this.pattern;return{isMatch:U,score:U?0:1,indices:[0,this.pattern.length-1]}}}class InverseExactMatch extends BaseMatch{constructor(F){super(F)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(F){const Q=F.indexOf(this.pattern)===-1;return{isMatch:Q,score:Q?0:1,indices:[0,F.length-1]}}}class PrefixExactMatch extends BaseMatch{constructor(F){super(F)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(F){const U=F.startsWith(this.pattern);return{isMatch:U,score:U?0:1,indices:[0,this.pattern.length-1]}}}class InversePrefixExactMatch extends BaseMatch{constructor(F){super(F)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(F){const U=!F.startsWith(this.pattern);return{isMatch:U,score:U?0:1,indices:[0,F.length-1]}}}class SuffixExactMatch extends BaseMatch{constructor(F){super(F)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(F){const U=F.endsWith(this.pattern);return{isMatch:U,score:U?0:1,indices:[F.length-this.pattern.length,F.length-1]}}}class InverseSuffixExactMatch extends BaseMatch{constructor(F){super(F)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(F){const U=!F.endsWith(this.pattern);return{isMatch:U,score:U?0:1,indices:[0,F.length-1]}}}class FuzzyMatch extends BaseMatch{constructor(F){let{location:U=Config.location,threshold:Q=Config.threshold,distance:e=Config.distance,includeMatches:B=Config.includeMatches,findAllMatches:t=Config.findAllMatches,minMatchCharLength:n=Config.minMatchCharLength,isCaseSensitive:a=Config.isCaseSensitive,ignoreLocation:i=Config.ignoreLocation}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(F),this._bitapSearch=new BitapSearch(F,{location:U,threshold:Q,distance:e,includeMatches:B,findAllMatches:t,minMatchCharLength:n,isCaseSensitive:a,ignoreLocation:i})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(F){return this._bitapSearch.searchIn(F)}}class IncludeMatch extends BaseMatch{constructor(F){super(F)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(F){let U=0,Q;const e=[],B=this.pattern.length;for(;(Q=F.indexOf(this.pattern,U))>-1;)U=Q+B,e.push([Q,U-1]);const t=!!e.length;return{isMatch:t,score:t?0:1,indices:e}}}const searchers=[ExactMatch,IncludeMatch,PrefixExactMatch,InversePrefixExactMatch,InverseSuffixExactMatch,SuffixExactMatch,InverseExactMatch,FuzzyMatch],searchersLen=searchers.length,SPACE_RE=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,OR_TOKEN="|";function parseQuery(s){let F=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return s.split(OR_TOKEN).map(U=>{let Q=U.trim().split(SPACE_RE).filter(B=>B&&!!B.trim()),e=[];for(let B=0,t=Q.length;B<t;B+=1){const n=Q[B];let a=!1,i=-1;for(;!a&&++i<searchersLen;){const L=searchers[i];let r=L.isMultiMatch(n);r&&(e.push(new L(r,F)),a=!0)}if(!a)for(i=-1;++i<searchersLen;){const L=searchers[i];let r=L.isSingleMatch(n);if(r){e.push(new L(r,F));break}}}return e})}const MultiMatchSet=new Set([FuzzyMatch.type,IncludeMatch.type]);class ExtendedSearch{constructor(F){let{isCaseSensitive:U=Config.isCaseSensitive,includeMatches:Q=Config.includeMatches,minMatchCharLength:e=Config.minMatchCharLength,ignoreLocation:B=Config.ignoreLocation,findAllMatches:t=Config.findAllMatches,location:n=Config.location,threshold:a=Config.threshold,distance:i=Config.distance}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.query=null,this.options={isCaseSensitive:U,includeMatches:Q,minMatchCharLength:e,findAllMatches:t,ignoreLocation:B,location:n,threshold:a,distance:i},this.pattern=U?F:F.toLowerCase(),this.query=parseQuery(this.pattern,this.options)}static condition(F,U){return U.useExtendedSearch}searchIn(F){const U=this.query;if(!U)return{isMatch:!1,score:1};const{includeMatches:Q,isCaseSensitive:e}=this.options;F=e?F:F.toLowerCase();let B=0,t=[],n=0;for(let a=0,i=U.length;a<i;a+=1){const L=U[a];t.length=0,B=0;for(let r=0,R=L.length;r<R;r+=1){const V=L[r],{isMatch:x,indices:u,score:c}=V.search(F);if(x){if(B+=1,n+=c,Q){const S=V.constructor.type;MultiMatchSet.has(S)?t=[...t,...u]:t.push(u)}}else{n=0,B=0,t.length=0;break}}if(B){let r={isMatch:!0,score:n/B};return Q&&(r.indices=t),r}}return{isMatch:!1,score:1}}}const registeredSearchers=[];function register(){registeredSearchers.push(...arguments)}function createSearcher(s,F){for(let U=0,Q=registeredSearchers.length;U<Q;U+=1){let e=registeredSearchers[U];if(e.condition(s,F))return new e(s,F)}return new BitapSearch(s,F)}const LogicalOperator={AND:"$and",OR:"$or"},KeyType={PATH:"$path",PATTERN:"$val"},isExpression=s=>!!(s[LogicalOperator.AND]||s[LogicalOperator.OR]),isPath=s=>!!s[KeyType.PATH],isLeaf=s=>!isArray(s)&&isObject(s)&&!isExpression(s),convertToExplicit=s=>({[LogicalOperator.AND]:Object.keys(s).map(F=>({[F]:s[F]}))});function parse(s,F){let{auto:U=!0}=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const Q=e=>{let B=Object.keys(e);const t=isPath(e);if(!t&&B.length>1&&!isExpression(e))return Q(convertToExplicit(e));if(isLeaf(e)){const a=t?e[KeyType.PATH]:B[0],i=t?e[KeyType.PATTERN]:e[a];if(!isString(i))throw new Error(LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY(a));const L={keyId:createKeyId(a),pattern:i};return U&&(L.searcher=createSearcher(i,F)),L}let n={children:[],operator:B[0]};return B.forEach(a=>{const i=e[a];isArray(i)&&i.forEach(L=>{n.children.push(Q(L))})}),n};return isExpression(s)||(s=convertToExplicit(s)),Q(s)}function computeScore(s,F){let{ignoreFieldNorm:U=Config.ignoreFieldNorm}=F;s.forEach(Q=>{let e=1;Q.matches.forEach(B=>{let{key:t,norm:n,score:a}=B;const i=t?t.weight:null;e*=Math.pow(a===0&&i?Number.EPSILON:a,(i||1)*(U?1:n))}),Q.score=e})}function transformMatches(s,F){const U=s.matches;F.matches=[],isDefined(U)&&U.forEach(Q=>{if(!isDefined(Q.indices)||!Q.indices.length)return;const{indices:e,value:B}=Q;let t={indices:e,value:B};Q.key&&(t.key=Q.key.src),Q.idx>-1&&(t.refIndex=Q.idx),F.matches.push(t)})}function transformScore(s,F){F.score=s.score}function format(s,F){let{includeMatches:U=Config.includeMatches,includeScore:Q=Config.includeScore}=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const e=[];return U&&e.push(transformMatches),Q&&e.push(transformScore),s.map(B=>{const{idx:t}=B,n={item:F[t],refIndex:t};return e.length&&e.forEach(a=>{a(B,n)}),n})}class Fuse{constructor(F){let U=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Q=arguments.length>2?arguments[2]:void 0;this.options={...Config,...U},this.options.useExtendedSearch,this._keyStore=new KeyStore(this.options.keys),this.setCollection(F,Q)}setCollection(F,U){if(this._docs=F,U&&!(U instanceof FuseIndex))throw new Error(INCORRECT_INDEX_TYPE);this._myIndex=U||createIndex(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(F){isDefined(F)&&(this._docs.push(F),this._myIndex.add(F))}remove(){let F=arguments.length>0&&arguments[0]!==void 0?arguments[0]:()=>!1;const U=[];for(let Q=0,e=this._docs.length;Q<e;Q+=1){const B=this._docs[Q];F(B,Q)&&(this.removeAt(Q),Q-=1,e-=1,U.push(B))}return U}removeAt(F){this._docs.splice(F,1),this._myIndex.removeAt(F)}getIndex(){return this._myIndex}search(F){let{limit:U=-1}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{includeMatches:Q,includeScore:e,shouldSort:B,sortFn:t,ignoreFieldNorm:n}=this.options;let a=isString(F)?isString(this._docs[0])?this._searchStringList(F):this._searchObjectList(F):this._searchLogical(F);return computeScore(a,{ignoreFieldNorm:n}),B&&a.sort(t),isNumber(U)&&U>-1&&(a=a.slice(0,U)),format(a,this._docs,{includeMatches:Q,includeScore:e})}_searchStringList(F){const U=createSearcher(F,this.options),{records:Q}=this._myIndex,e=[];return Q.forEach(B=>{let{v:t,i:n,n:a}=B;if(!isDefined(t))return;const{isMatch:i,score:L,indices:r}=U.searchIn(t);i&&e.push({item:t,idx:n,matches:[{score:L,value:t,norm:a,indices:r}]})}),e}_searchLogical(F){const U=parse(F,this.options),Q=(n,a,i)=>{if(!n.children){const{keyId:r,searcher:R}=n,V=this._findMatches({key:this._keyStore.get(r),value:this._myIndex.getValueForItemAtKeyId(a,r),searcher:R});return V&&V.length?[{idx:i,item:a,matches:V}]:[]}const L=[];for(let r=0,R=n.children.length;r<R;r+=1){const V=n.children[r],x=Q(V,a,i);if(x.length)L.push(...x);else if(n.operator===LogicalOperator.AND)return[]}return L},e=this._myIndex.records,B={},t=[];return e.forEach(n=>{let{$:a,i}=n;if(isDefined(a)){let L=Q(U,a,i);L.length&&(B[i]||(B[i]={idx:i,item:a,matches:[]},t.push(B[i])),L.forEach(r=>{let{matches:R}=r;B[i].matches.push(...R)}))}}),t}_searchObjectList(F){const U=createSearcher(F,this.options),{keys:Q,records:e}=this._myIndex,B=[];return e.forEach(t=>{let{$:n,i:a}=t;if(!isDefined(n))return;let i=[];Q.forEach((L,r)=>{i.push(...this._findMatches({key:L,value:n[r],searcher:U}))}),i.length&&B.push({idx:a,item:n,matches:i})}),B}_findMatches(F){let{key:U,value:Q,searcher:e}=F;if(!isDefined(Q))return[];let B=[];if(isArray(Q))Q.forEach(t=>{let{v:n,i:a,n:i}=t;if(!isDefined(n))return;const{isMatch:L,score:r,indices:R}=e.searchIn(n);L&&B.push({score:r,key:U,value:n,idx:a,norm:i,indices:R})});else{const{v:t,n}=Q,{isMatch:a,score:i,indices:L}=e.searchIn(t);a&&B.push({score:i,key:U,value:t,norm:n,indices:L})}return B}}Fuse.version="6.6.2",Fuse.createIndex=createIndex,Fuse.parseIndex=parseIndex,Fuse.config=Config,Fuse.parseQuery=parse,register(ExtendedSearch);function getDistanceFromLatLonInKm(s,F){const[U,Q,e]=s.split(":"),[B,t]=F.split(":"),n=6371,a=deg2rad(B-U),i=deg2rad(t-Q),L=Math.sin(a/2)*Math.sin(a/2)+Math.cos(deg2rad(U))*Math.cos(deg2rad(B))*Math.sin(i/2)*Math.sin(i/2),r=2*Math.atan2(Math.sqrt(L),Math.sqrt(1-L)),R=n*r;return Number(e)>=R}function deg2rad(s){return s*(Math.PI/180)}function getDate$1(){let{type:s,date:F=0,match:U=!0}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},Q=arguments.length>1?arguments[1]:void 0;if(!Q&&s)return!1;const e=new Date;let B=!0;switch(s){case"day":const t=getDateInMs(F),n=getDateInMs(F+1);B=t<=Q&&Q<n;break;case"days":if(F<0){const Z=getDateInMs(1);B=getDateInMs(-6)<=Q&&Q<Z}else{const Z=getDateInMs(),h=getDateInMs(7);B=Z<=Q&&Q<h}break;case"day_week":B=F===new Date(Q).getDay();break;case"week":const a=e.getDate()-e.getDay(),i=F==-2?13:6,L=a+i,r=e.setDate(a+F*7),V=new Date().setDate(L+F*7),[x,u]=getWeek(r,V);B=x<=Q&&Q<=u;break;case"month":if(e.getFullYear()!==new Date(Q).getFullYear())return!1;B=e.getMonth()+F===new Date(Q).getMonth();break;case"year":B=e.getFullYear()+F===new Date(Q).getFullYear();break;default:return!0}return U?B:!B}function getWeek(s,F){return[new Date(s),new Date(F)]}function getDateInMs(){let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;const F=new Date;return new Date(F.getFullYear(),F.getMonth(),F.getDate()+s).valueOf()}function searchValue(s,F){if(!(!s||!s.length))return F?s.filter(U=>U.fields.find(Q=>Q.index_value&&Q.index_value.toLowerCase().indexOf(F.toLowerCase())!==-1)):s}const fuse=new Fuse([]);function isSimilarStrings(s,F){return fuse.setCollection(F),!!fuse.search(s).length}function filter(s,F){const U=new ItemsFilter;return!s||!s.length?[]:U.filter(F,s)}class Checker{changeBehavior(F){switch(F){case"contain_or":this._checkFn=function(U,Q){return Q.some(e=>U.some(B=>B.indexOf(e)!==-1))};break;case"contain_and":this._checkFn=function(U,Q){return Q.every(e=>U.some(B=>B.indexOf(e)!==-1))};break;case"not_contain_or":this._checkFn=function(U,Q){return Q.some(e=>U.every(B=>B.indexOf(e)===-1))};break;case"not_contain_and":this._checkFn=function(U,Q){return Q.every(e=>U.every(B=>B.indexOf(e)===-1))};break;case"equal_or":this._checkFn=function(U,Q){return U.length?U.some(e=>Q.some(B=>e==B)):!1};break;case"equal_and":this._checkFn=function(U,Q){if(!U.length)return!1;let e=new Set(Q);for(;U.length&&e.size;){let B=U.pop();e.has(B)&&e.delete(B)}return!e.size};break;case"not_equal_or":this._checkFn=function(U,Q){if(!U.length)return!0;let e=new Set(Q);for(;U.length&&e.size;){let B=U.pop();if(!e.has(B))return!0}return!1};break;case"not_equal_and":this._checkFn=function(U,Q){let e=new Set(Q);for(;U.length&&e.size;){let B=U.pop();if(e.has(B))return!1}return!0};break;case"bigger":this._checkFn=function(U,Q){return Q.some(e=>U.every(B=>B>e))};break;case"lower":this._checkFn=function(U,Q){return Q.some(e=>U.every(B=>B<e))};break;case"range":this._checkFn=function(U,Q){return Q.some(e=>U.every(B=>e.start<=B&&B<e.end))};break;case"value":this._checkFn=function(U,Q){return Q.some(e=>U.some(B=>B==e))};break;case"search":this._checkFn=function(U,Q){return Q.some(e=>isSimilarStrings(e,U))};break;case"phone_equal_or":this._checkFn=function(U,Q){return U.length?Q.some(e=>U.some(B=>B.replace(/[^0-9]/g,"").indexOf(e.replace(/[^0-9]/g,""))!==-1)):!1};break;case"distance":this._checkFn=function(U,Q){return Q.some(e=>U.some(B=>getDistanceFromLatLonInKm(e,B)))};break;case"date_in":case"date_out":this._checkFn=function(U,Q){return Q.some(e=>U.some(B=>getDate$1(e,B)))};break;case"recurring_date":this._checkFn=function(U,Q){return Q.some(e=>U.some(B=>gudhub.checkRecurringDate(B,e)))};break;case"month_before_date":this._checkFn=function(U,Q){return Q.some(e=>U.some(B=>{const t=new Date(B),n=new Date(e),a=new Date(n);return a.setMonth(a.getMonth()-1),isNaN(t)||isNaN(a)||isNaN(n)?!1:t>=a&&t<=n}))};break}return this}check(F){return this.changeBehavior(F.getCheckOption())._checkFn(F.getEntity(),F.getFilterValues())}}class NumberFetchStrategy{convert(F){return[Number(F)]}convertFilterValue(F){return Number(F)}}class RangeFetchStrategy extends NumberFetchStrategy{convertFilterValue(F){return{start:Number(F.split(":")[0]),end:Number(F.split(":")[1])}}}class StringFetchStrategy{convert(F){return String(F??"").toLowerCase().split(",")}convertFilterValue(F){return F===0?"0":String(F||"").toLowerCase()}}class dateFetchStrategy extends NumberFetchStrategy{convertFilterValue(F){const[U,Q,e]=F.split(":");return{type:U,date:Number(Q),match:!!Number(e)}}}class BooleanFetchStrategy{convert(F){return[String(!!F)]}convertFilterValue(F){return String(F)}}class RecurringDateStrategy{convert(F){return[Number(F)]}convertFilterValue(F){return String(F)}}class MonthBeforeDateStrategy{convert(F){return[Number(F)]}convertFilterValue(F){return Number(F)}}class Aggregate{constructor(){this._strategies={stringStrategy:new StringFetchStrategy,numberStrategy:new NumberFetchStrategy,booleanStrategy:new BooleanFetchStrategy,rangeStrategy:new RangeFetchStrategy,dateStrategy:new dateFetchStrategy,recurringDateStrategy:new RecurringDateStrategy,monthBeforeDate:new MonthBeforeDateStrategy}}setStrategy(F){switch(this._checkOption=F,F){case"contain_or":case"contain_and":case"not_contain_or":case"not_contain_and":case"equal_or":case"equal_and":case"not_equal_or":case"not_equal_and":case"phone_equal_or":case"distance":case"search":this._currentStrategy=this._strategies.stringStrategy;break;case"bigger":case"lower":this._currentStrategy=this._strategies.numberStrategy;break;case"range":this._currentStrategy=this._strategies.rangeStrategy;break;case"date_in":case"date_out":this._currentStrategy=this._strategies.dateStrategy;break;case"value":this._currentStrategy=this._strategies.booleanStrategy;break;case"recurring_date":this._currentStrategy=this._strategies.recurringDateStrategy;case"month_before_date":this._currentStrategy=this._strategies.monthBeforeDate}return this}setEntity(F){return this._entity=this._currentStrategy.convert(F),this}getEntity(){return this._entity}setFilterValues(F){let U=Array.isArray(F)?F:[F];return this._filterValues=U.map(Q=>this._currentStrategy.convertFilterValue(Q)),this}getFilterValues(){return this._filterValues}getCheckOption(){return this._checkOption}}class ItemsFilter{constructor(){}filter(F,U){const Q=this.checkIfAllFiltersHaveAndStrategy(F),e=[],B=F.filter(function(t){return t.valuesArray.length});for(let t of U){let n=!0;for(let a=0;a<B.length;a++){const i=B[a],L=t.fields.find(function(V){return i.field_id==V.field_id}),r=new Aggregate,R=new Checker;switch(r.setStrategy(i.search_type).setEntity(L&&L.field_value!=null?L.field_value:null).setFilterValues(i.valuesArray),i.boolean_strategy){case"and":n=n&&R.check(r);break;case"or":n=n||R.check(r);break;default:n=n&&R.check(r)}if(!n&&Q)break}n&&e.push(t)}return e.length||F.length&&!e.length?e:U}checkIfAllFiltersHaveAndStrategy(F){return F.every(U=>!U.boolean_strategy||U.boolean_strategy=="and")}}function mergeFilters(s,F){const U=[];let Q=[];if(s.length>0?s.forEach(e=>{Q.push(e)}):Q=F,Q.length>0){Q.forEach((e,B)=>{for(let t=0;t<F.length;t++)e.field_id==F[t].field_id&&(U.push(e.field_id),Q[B]=gudhub.mergeObjects(F[t],e))});for(let e=0;e<F.length;e++)U.includes(F[e].field_id)||Q.push(F[e])}return Q}function commonjsRequire(s){throw new Error('Could not dynamically require "'+s+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var jsonpath$1={exports:{}};/*! jsonpath 1.1.1 */var hasRequiredJsonpath;function requireJsonpath(){return hasRequiredJsonpath||(hasRequiredJsonpath=1,function(s,F){(function(U){s.exports=U()})(function(){return function U(Q,e,B){function t(i,L){if(!e[i]){if(!Q[i]){var r=typeof commonjsRequire=="function"&&commonjsRequire;if(!L&&r)return r(i,!0);if(n)return n(i,!0);var R=new Error("Cannot find module '"+i+"'");throw R.code="MODULE_NOT_FOUND",R}var V=e[i]={exports:{}};Q[i][0].call(V.exports,function(x){var u=Q[i][1][x];return t(u||x)},V,V.exports,U,Q,e,B)}return e[i].exports}for(var n=typeof commonjsRequire=="function"&&commonjsRequire,a=0;a<B.length;a++)t(B[a]);return t}({"./aesprim":[function(U,Q,e){(function(B,t){t(typeof e<"u"?e:B.esprima={})})(this,function(B){var t,n,a,i,L,r,R,V,x,u,c,S,Z,h,o,E,p,m;t={BooleanLiteral:1,EOF:2,Identifier:3,Keyword:4,NullLiteral:5,NumericLiteral:6,Punctuator:7,StringLiteral:8,RegularExpression:9},n={},n[t.BooleanLiteral]="Boolean",n[t.EOF]="<end>",n[t.Identifier]="Identifier",n[t.Keyword]="Keyword",n[t.NullLiteral]="Null",n[t.NumericLiteral]="Numeric",n[t.Punctuator]="Punctuator",n[t.StringLiteral]="String",n[t.RegularExpression]="RegularExpression",a=["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="],i={AssignmentExpression:"AssignmentExpression",ArrayExpression:"ArrayExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",Program:"Program",Property:"Property",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement"},L={Data:1,Get:2,Set:4},r={UnexpectedToken:"Unexpected token %0",UnexpectedNumber:"Unexpected number",UnexpectedString:"Unexpected string",UnexpectedIdentifier:"Unexpected identifier",UnexpectedReserved:"Unexpected reserved word",UnexpectedEOS:"Unexpected end of input",NewlineAfterThrow:"Illegal newline after throw",InvalidRegExp:"Invalid regular expression",UnterminatedRegExp:"Invalid regular expression: missing /",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NoCatchOrFinally:"Missing catch or finally after try",UnknownLabel:"Undefined label '%0'",Redeclaration:"%0 '%1' has already been declared",IllegalContinue:"Illegal continue statement",IllegalBreak:"Illegal break statement",IllegalReturn:"Illegal return statement",StrictModeWith:"Strict mode code may not include a with statement",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictDuplicateProperty:"Duplicate data property in object literal not allowed in strict mode",AccessorDataProperty:"Object literal may not have data and accessor property with the same name",AccessorGetSet:"Object literal may not have multiple get/set accessors with the same name",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictReservedWord:"Use of future reserved word in strict mode"},R={NonAsciiIdentifierStart:new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԧԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠࢢ-ࢬऄ-हऽॐक़-ॡॱ-ॷॹ-ॿঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-ళవ-హఽౘౙౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൠൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤜᥐ-ᥭᥰ-ᥴᦀ-ᦫᧁ-ᧇᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚗꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꪀ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]"),NonAsciiIdentifierPart:new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮ̀-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁ҃-҇Ҋ-ԧԱ-Ֆՙա-և֑-ׇֽֿׁׂׅׄא-תװ-ײؐ-ؚؠ-٩ٮ-ۓە-ۜ۟-۪ۨ-ۼۿܐ-݊ݍ-ޱ߀-ߵߺࠀ-࠭ࡀ-࡛ࢠࢢ-ࢬࣤ-ࣾऀ-ॣ०-९ॱ-ॷॹ-ॿঁ-ঃঅ-ঌএঐও-নপ-রলশ-হ়-ৄেৈো-ৎৗড়ঢ়য়-ৣ০-ৱਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ੂੇੈੋ-੍ੑਖ਼-ੜਫ਼੦-ੵઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ઼-ૅે-ૉો-્ૐૠ-ૣ૦-૯ଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହ଼-ୄେୈୋ-୍ୖୗଡ଼ଢ଼ୟ-ୣ୦-୯ୱஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-்ௐௗ௦-௯ఁ-ఃఅ-ఌఎ-ఐఒ-నప-ళవ-హఽ-ౄె-ైొ-్ౕౖౘౙౠ-ౣ౦-౯ಂಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-್ೕೖೞೠ-ೣ೦-೯ೱೲംഃഅ-ഌഎ-ഐഒ-ഺഽ-ൄെ-ൈൊ-ൎൗൠ-ൣ൦-൯ൺ-ൿංඃඅ-ඖක-නඳ-රලව-ෆ්ා-ුූෘ-ෟෲෳก-ฺเ-๎๐-๙ກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆ່-ໍ໐-໙ໜ-ໟༀ༘༙༠-༩༹༵༷༾-ཇཉ-ཬཱ-྄྆-ྗྙ-ྼ࿆က-၉ၐ-ႝႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፝-፟ᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-᜔ᜠ-᜴ᝀ-ᝓᝠ-ᝬᝮ-ᝰᝲᝳក-៓ៗៜ៝០-៩᠋-᠍᠐-᠙ᠠ-ᡷᢀ-ᢪᢰ-ᣵᤀ-ᤜᤠ-ᤫᤰ-᤻᥆-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉ᧐-᧙ᨀ-ᨛᨠ-ᩞ᩠-᩿᩼-᪉᪐-᪙ᪧᬀ-ᭋ᭐-᭙᭫-᭳ᮀ-᯳ᰀ-᰷᱀-᱉ᱍ-ᱽ᳐-᳔᳒-ᳶᴀ-ᷦ᷼-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼ‿⁀⁔ⁱⁿₐ-ₜ⃐-⃥⃜⃡-⃰ℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯ⵿-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⷠ-ⷿⸯ々-〇〡-〯〱-〵〸-〼ぁ-ゖ゙゚ゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘫꙀ-꙯ꙴ-꙽ꙿ-ꚗꚟ-꛱ꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠧꡀ-ꡳꢀ-꣄꣐-꣙꣠-ꣷꣻ꤀-꤭ꤰ-꥓ꥠ-ꥼꦀ-꧀ꧏ-꧙ꨀ-ꨶꩀ-ꩍ꩐-꩙ꩠ-ꩶꩺꩻꪀ-ꫂꫛ-ꫝꫠ-ꫯꫲ-꫶ꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯪ꯬꯭꯰-꯹가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻ︀-️︠-︦︳︴﹍-﹏ﹰ-ﹴﹶ-ﻼ0-9A-Z_a-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]")};function X(l,d){if(!l)throw new Error("ASSERT: "+d)}function T(l){return l>=48&&l<=57}function M(l){return"0123456789abcdefABCDEF".indexOf(l)>=0}function D(l){return"01234567".indexOf(l)>=0}function Y(l){return l===32||l===9||l===11||l===12||l===160||l>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(l)>=0}function k(l){return l===10||l===13||l===8232||l===8233}function g(l){return l==64||l===36||l===95||l>=65&&l<=90||l>=97&&l<=122||l===92||l>=128&&R.NonAsciiIdentifierStart.test(String.fromCharCode(l))}function K(l){return l===36||l===95||l>=65&&l<=90||l>=97&&l<=122||l>=48&&l<=57||l===92||l>=128&&R.NonAsciiIdentifierPart.test(String.fromCharCode(l))}function nF(l){switch(l){case"class":case"enum":case"export":case"extends":case"import":case"super":return!0;default:return!1}}function BF(l){switch(l){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}}function w(l){return l==="eval"||l==="arguments"}function cF(l){if(u&&BF(l))return!0;switch(l.length){case 2:return l==="if"||l==="in"||l==="do";case 3:return l==="var"||l==="for"||l==="new"||l==="try"||l==="let";case 4:return l==="this"||l==="else"||l==="case"||l==="void"||l==="with"||l==="enum";case 5:return l==="while"||l==="break"||l==="catch"||l==="throw"||l==="const"||l==="yield"||l==="class"||l==="super";case 6:return l==="return"||l==="typeof"||l==="delete"||l==="switch"||l==="export"||l==="import";case 7:return l==="default"||l==="finally"||l==="extends";case 8:return l==="function"||l==="continue"||l==="debugger";case 10:return l==="instanceof";default:return!1}}function rF(l,d,y,N,I){var C;X(typeof y=="number","Comment must have valid position"),!(p.lastCommentStart>=y)&&(p.lastCommentStart=y,C={type:l,value:d},m.range&&(C.range=[y,N]),m.loc&&(C.loc=I),m.comments.push(C),m.attachComment&&(m.leadingComments.push(C),m.trailingComments.push(C)))}function VF(l){var d,y,N,I;for(d=c-l,y={start:{line:S,column:c-Z-l}};c<h;)if(N=x.charCodeAt(c),++c,k(N)){m.comments&&(I=x.slice(d+l,c-1),y.end={line:S,column:c-Z-1},rF("Line",I,d,c-1,y)),N===13&&x.charCodeAt(c)===10&&++c,++S,Z=c;return}m.comments&&(I=x.slice(d+l,c),y.end={line:S,column:c-Z},rF("Line",I,d,c,y))}function GF(){var l,d,y,N;for(m.comments&&(l=c-2,d={start:{line:S,column:c-Z-2}});c<h;)if(y=x.charCodeAt(c),k(y))y===13&&x.charCodeAt(c+1)===10&&++c,++S,++c,Z=c,c>=h&&_({},r.UnexpectedToken,"ILLEGAL");else if(y===42){if(x.charCodeAt(c+1)===47){++c,++c,m.comments&&(N=x.slice(l+2,c-2),d.end={line:S,column:c-Z},rF("Block",N,l,c,d));return}++c}else++c;_({},r.UnexpectedToken,"ILLEGAL")}function W(){var l,d;for(d=c===0;c<h;)if(l=x.charCodeAt(c),Y(l))++c;else if(k(l))++c,l===13&&x.charCodeAt(c)===10&&++c,++S,Z=c,d=!0;else if(l===47)if(l=x.charCodeAt(c+1),l===47)++c,++c,VF(2),d=!0;else if(l===42)++c,++c,GF();else break;else if(d&&l===45)if(x.charCodeAt(c+1)===45&&x.charCodeAt(c+2)===62)c+=3,VF(3);else break;else if(l===60)if(x.slice(c+1,c+4)==="!--")++c,++c,++c,++c,VF(4);else break;else break}function J(l){var d,y,N,I=0;for(y=l==="u"?4:2,d=0;d<y;++d)if(c<h&&M(x[c]))N=x[c++],I=I*16+"0123456789abcdef".indexOf(N.toLowerCase());else return"";return String.fromCharCode(I)}function f(){var l,d;for(l=x.charCodeAt(c++),d=String.fromCharCode(l),l===92&&(x.charCodeAt(c)!==117&&_({},r.UnexpectedToken,"ILLEGAL"),++c,l=J("u"),(!l||l==="\\"||!g(l.charCodeAt(0)))&&_({},r.UnexpectedToken,"ILLEGAL"),d=l);c<h&&(l=x.charCodeAt(c),!!K(l));)++c,d+=String.fromCharCode(l),l===92&&(d=d.substr(0,d.length-1),x.charCodeAt(c)!==117&&_({},r.UnexpectedToken,"ILLEGAL"),++c,l=J("u"),(!l||l==="\\"||!K(l.charCodeAt(0)))&&_({},r.UnexpectedToken,"ILLEGAL"),d+=l);return d}function $(){var l,d;for(l=c++;c<h;){if(d=x.charCodeAt(c),d===92)return c=l,f();if(K(d))++c;else break}return x.slice(l,c)}function lF(){var l,d,y;return l=c,d=x.charCodeAt(c)===92?f():$(),d.length===1?y=t.Identifier:cF(d)?y=t.Keyword:d==="null"?y=t.NullLiteral:d==="true"||d==="false"?y=t.BooleanLiteral:y=t.Identifier,{type:y,value:d,lineNumber:S,lineStart:Z,start:l,end:c}}function A(){var l=c,d=x.charCodeAt(c),y,N=x[c],I,C,FF;switch(d){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:case 126:return++c,m.tokenize&&(d===40?m.openParenToken=m.tokens.length:d===123&&(m.openCurlyToken=m.tokens.length)),{type:t.Punctuator,value:String.fromCharCode(d),lineNumber:S,lineStart:Z,start:l,end:c};default:if(y=x.charCodeAt(c+1),y===61)switch(d){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return c+=2,{type:t.Punctuator,value:String.fromCharCode(d)+String.fromCharCode(y),lineNumber:S,lineStart:Z,start:l,end:c};case 33:case 61:return c+=2,x.charCodeAt(c)===61&&++c,{type:t.Punctuator,value:x.slice(l,c),lineNumber:S,lineStart:Z,start:l,end:c}}}if(FF=x.substr(c,4),FF===">>>=")return c+=4,{type:t.Punctuator,value:FF,lineNumber:S,lineStart:Z,start:l,end:c};if(C=FF.substr(0,3),C===">>>"||C==="<<="||C===">>=")return c+=3,{type:t.Punctuator,value:C,lineNumber:S,lineStart:Z,start:l,end:c};if(I=C.substr(0,2),N===I[1]&&"+-<>&|".indexOf(N)>=0||I==="=>")return c+=2,{type:t.Punctuator,value:I,lineNumber:S,lineStart:Z,start:l,end:c};if("<>=!+-*%&|^/".indexOf(N)>=0)return++c,{type:t.Punctuator,value:N,lineNumber:S,lineStart:Z,start:l,end:c};_({},r.UnexpectedToken,"ILLEGAL")}function z(l){for(var d="";c<h&&M(x[c]);)d+=x[c++];return d.length===0&&_({},r.UnexpectedToken,"ILLEGAL"),g(x.charCodeAt(c))&&_({},r.UnexpectedToken,"ILLEGAL"),{type:t.NumericLiteral,value:parseInt("0x"+d,16),lineNumber:S,lineStart:Z,start:l,end:c}}function H(l){for(var d="0"+x[c++];c<h&&D(x[c]);)d+=x[c++];return(g(x.charCodeAt(c))||T(x.charCodeAt(c)))&&_({},r.UnexpectedToken,"ILLEGAL"),{type:t.NumericLiteral,value:parseInt(d,8),octal:!0,lineNumber:S,lineStart:Z,start:l,end:c}}function O(){var l,d,y;if(y=x[c],X(T(y.charCodeAt(0))||y===".","Numeric literal must start with a decimal digit or a decimal point"),d=c,l="",y!=="."){if(l=x[c++],y=x[c],l==="0"){if(y==="x"||y==="X")return++c,z(d);if(D(y))return H(d);y&&T(y.charCodeAt(0))&&_({},r.UnexpectedToken,"ILLEGAL")}for(;T(x.charCodeAt(c));)l+=x[c++];y=x[c]}if(y==="."){for(l+=x[c++];T(x.charCodeAt(c));)l+=x[c++];y=x[c]}if(y==="e"||y==="E")if(l+=x[c++],y=x[c],(y==="+"||y==="-")&&(l+=x[c++]),T(x.charCodeAt(c)))for(;T(x.charCodeAt(c));)l+=x[c++];else _({},r.UnexpectedToken,"ILLEGAL");return g(x.charCodeAt(c))&&_({},r.UnexpectedToken,"ILLEGAL"),{type:t.NumericLiteral,value:parseFloat(l),lineNumber:S,lineStart:Z,start:d,end:c}}function UF(){var l="",d,y,N,I,C,FF,tF=!1,yF,SF;for(yF=S,SF=Z,d=x[c],X(d==="'"||d==='"',"String literal must starts with a quote"),y=c,++c;c<h;)if(N=x[c++],N===d){d="";break}else if(N==="\\")if(N=x[c++],!N||!k(N.charCodeAt(0)))switch(N){case"u":case"x":FF=c,C=J(N),C?l+=C:(c=FF,l+=N);break;case"n":l+=`
|
|
8
|
+
`;break;case"r":l+="\r";break;case"t":l+=" ";break;case"b":l+="\b";break;case"f":l+="\f";break;case"v":l+="\v";break;default:D(N)?(I="01234567".indexOf(N),I!==0&&(tF=!0),c<h&&D(x[c])&&(tF=!0,I=I*8+"01234567".indexOf(x[c++]),"0123".indexOf(N)>=0&&c<h&&D(x[c])&&(I=I*8+"01234567".indexOf(x[c++]))),l+=String.fromCharCode(I)):l+=N;break}else++S,N==="\r"&&x[c]===`
|
|
9
|
+
`&&++c,Z=c;else{if(k(N.charCodeAt(0)))break;l+=N}return d!==""&&_({},r.UnexpectedToken,"ILLEGAL"),{type:t.StringLiteral,value:l,octal:tF,startLineNumber:yF,startLineStart:SF,lineNumber:S,lineStart:Z,start:y,end:c}}function aF(l,d){var y;try{y=new RegExp(l,d)}catch{_({},r.InvalidRegExp)}return y}function oF(){var l,d,y,N,I;for(l=x[c],X(l==="/","Regular expression literal must start with a slash"),d=x[c++],y=!1,N=!1;c<h;)if(l=x[c++],d+=l,l==="\\")l=x[c++],k(l.charCodeAt(0))&&_({},r.UnterminatedRegExp),d+=l;else if(k(l.charCodeAt(0)))_({},r.UnterminatedRegExp);else if(y)l==="]"&&(y=!1);else if(l==="/"){N=!0;break}else l==="["&&(y=!0);return N||_({},r.UnterminatedRegExp),I=d.substr(1,d.length-2),{value:I,literal:d}}function uF(){var l,d,y,N;for(d="",y="";c<h&&(l=x[c],!!K(l.charCodeAt(0)));)if(++c,l==="\\"&&c<h)if(l=x[c],l==="u"){if(++c,N=c,l=J("u"),l)for(y+=l,d+="\\u";N<c;++N)d+=x[N];else c=N,y+="u",d+="\\u";eF({},r.UnexpectedToken,"ILLEGAL")}else d+="\\",eF({},r.UnexpectedToken,"ILLEGAL");else y+=l,d+=l;return{value:y,literal:d}}function xF(){var l,d,y,N;return E=null,W(),l=c,d=oF(),y=uF(),N=aF(d.value,y.value),m.tokenize?{type:t.RegularExpression,value:N,lineNumber:S,lineStart:Z,start:l,end:c}:{literal:d.literal+y.literal,value:N,start:l,end:c}}function RF(){var l,d,y,N;return W(),l=c,d={start:{line:S,column:c-Z}},y=xF(),d.end={line:S,column:c-Z},m.tokenize||(m.tokens.length>0&&(N=m.tokens[m.tokens.length-1],N.range[0]===l&&N.type==="Punctuator"&&(N.value==="/"||N.value==="/=")&&m.tokens.pop()),m.tokens.push({type:"RegularExpression",value:y.literal,range:[l,c],loc:d})),y}function XF(l){return l.type===t.Identifier||l.type===t.Keyword||l.type===t.BooleanLiteral||l.type===t.NullLiteral}function gF(){var l,d;if(l=m.tokens[m.tokens.length-1],!l)return RF();if(l.type==="Punctuator"){if(l.value==="]")return A();if(l.value===")")return d=m.tokens[m.openParenToken-1],d&&d.type==="Keyword"&&(d.value==="if"||d.value==="while"||d.value==="for"||d.value==="with")?RF():A();if(l.value==="}"){if(m.tokens[m.openCurlyToken-3]&&m.tokens[m.openCurlyToken-3].type==="Keyword"){if(d=m.tokens[m.openCurlyToken-4],!d)return A()}else if(m.tokens[m.openCurlyToken-4]&&m.tokens[m.openCurlyToken-4].type==="Keyword"){if(d=m.tokens[m.openCurlyToken-5],!d)return RF()}else return A();return a.indexOf(d.value)>=0?A():RF()}return RF()}return l.type==="Keyword"?RF():A()}function WF(){var l;return W(),c>=h?{type:t.EOF,lineNumber:S,lineStart:Z,start:c,end:c}:(l=x.charCodeAt(c),g(l)?lF():l===40||l===41||l===59?A():l===39||l===34?UF():l===46?T(x.charCodeAt(c+1))?O():A():T(l)?O():m.tokenize&&l===47?gF():A())}function NF(){var l,d,y;return W(),l={start:{line:S,column:c-Z}},d=WF(),l.end={line:S,column:c-Z},d.type!==t.EOF&&(y=x.slice(d.start,d.end),m.tokens.push({type:n[d.type],value:y,range:[d.start,d.end],loc:l})),d}function P(){var l;return l=E,c=l.end,S=l.lineNumber,Z=l.lineStart,E=typeof m.tokens<"u"?NF():WF(),c=l.end,S=l.lineNumber,Z=l.lineStart,l}function JF(){var l,d,y;l=c,d=S,y=Z,E=typeof m.tokens<"u"?NF():WF(),c=l,S=d,Z=y}function fF(l,d){this.line=l,this.column=d}function tU(l,d,y,N){this.start=new fF(l,d),this.end=new fF(y,N)}V={name:"SyntaxTree",processComment:function(l){var d,y;if(!(l.type===i.Program&&l.body.length>0)){for(m.trailingComments.length>0?m.trailingComments[0].range[0]>=l.range[1]?(y=m.trailingComments,m.trailingComments=[]):m.trailingComments.length=0:m.bottomRightStack.length>0&&m.bottomRightStack[m.bottomRightStack.length-1].trailingComments&&m.bottomRightStack[m.bottomRightStack.length-1].trailingComments[0].range[0]>=l.range[1]&&(y=m.bottomRightStack[m.bottomRightStack.length-1].trailingComments,delete m.bottomRightStack[m.bottomRightStack.length-1].trailingComments);m.bottomRightStack.length>0&&m.bottomRightStack[m.bottomRightStack.length-1].range[0]>=l.range[0];)d=m.bottomRightStack.pop();d?d.leadingComments&&d.leadingComments[d.leadingComments.length-1].range[1]<=l.range[0]&&(l.leadingComments=d.leadingComments,delete d.leadingComments):m.leadingComments.length>0&&m.leadingComments[m.leadingComments.length-1].range[1]<=l.range[0]&&(l.leadingComments=m.leadingComments,m.leadingComments=[]),y&&(l.trailingComments=y),m.bottomRightStack.push(l)}},markEnd:function(l,d){return m.range&&(l.range=[d.start,c]),m.loc&&(l.loc=new tU(d.startLineNumber===void 0?d.lineNumber:d.startLineNumber,d.start-(d.startLineStart===void 0?d.lineStart:d.startLineStart),S,c-Z),this.postProcess(l)),m.attachComment&&this.processComment(l),l},postProcess:function(l){return m.source&&(l.loc.source=m.source),l},createArrayExpression:function(l){return{type:i.ArrayExpression,elements:l}},createAssignmentExpression:function(l,d,y){return{type:i.AssignmentExpression,operator:l,left:d,right:y}},createBinaryExpression:function(l,d,y){var N=l==="||"||l==="&&"?i.LogicalExpression:i.BinaryExpression;return{type:N,operator:l,left:d,right:y}},createBlockStatement:function(l){return{type:i.BlockStatement,body:l}},createBreakStatement:function(l){return{type:i.BreakStatement,label:l}},createCallExpression:function(l,d){return{type:i.CallExpression,callee:l,arguments:d}},createCatchClause:function(l,d){return{type:i.CatchClause,param:l,body:d}},createConditionalExpression:function(l,d,y){return{type:i.ConditionalExpression,test:l,consequent:d,alternate:y}},createContinueStatement:function(l){return{type:i.ContinueStatement,label:l}},createDebuggerStatement:function(){return{type:i.DebuggerStatement}},createDoWhileStatement:function(l,d){return{type:i.DoWhileStatement,body:l,test:d}},createEmptyStatement:function(){return{type:i.EmptyStatement}},createExpressionStatement:function(l){return{type:i.ExpressionStatement,expression:l}},createForStatement:function(l,d,y,N){return{type:i.ForStatement,init:l,test:d,update:y,body:N}},createForInStatement:function(l,d,y){return{type:i.ForInStatement,left:l,right:d,body:y,each:!1}},createFunctionDeclaration:function(l,d,y,N){return{type:i.FunctionDeclaration,id:l,params:d,defaults:y,body:N,rest:null,generator:!1,expression:!1}},createFunctionExpression:function(l,d,y,N){return{type:i.FunctionExpression,id:l,params:d,defaults:y,body:N,rest:null,generator:!1,expression:!1}},createIdentifier:function(l){return{type:i.Identifier,name:l}},createIfStatement:function(l,d,y){return{type:i.IfStatement,test:l,consequent:d,alternate:y}},createLabeledStatement:function(l,d){return{type:i.LabeledStatement,label:l,body:d}},createLiteral:function(l){return{type:i.Literal,value:l.value,raw:x.slice(l.start,l.end)}},createMemberExpression:function(l,d,y){return{type:i.MemberExpression,computed:l==="[",object:d,property:y}},createNewExpression:function(l,d){return{type:i.NewExpression,callee:l,arguments:d}},createObjectExpression:function(l){return{type:i.ObjectExpression,properties:l}},createPostfixExpression:function(l,d){return{type:i.UpdateExpression,operator:l,argument:d,prefix:!1}},createProgram:function(l){return{type:i.Program,body:l}},createProperty:function(l,d,y){return{type:i.Property,key:d,value:y,kind:l}},createReturnStatement:function(l){return{type:i.ReturnStatement,argument:l}},createSequenceExpression:function(l){return{type:i.SequenceExpression,expressions:l}},createSwitchCase:function(l,d){return{type:i.SwitchCase,test:l,consequent:d}},createSwitchStatement:function(l,d){return{type:i.SwitchStatement,discriminant:l,cases:d}},createThisExpression:function(){return{type:i.ThisExpression}},createThrowStatement:function(l){return{type:i.ThrowStatement,argument:l}},createTryStatement:function(l,d,y,N){return{type:i.TryStatement,block:l,guardedHandlers:d,handlers:y,finalizer:N}},createUnaryExpression:function(l,d){return l==="++"||l==="--"?{type:i.UpdateExpression,operator:l,argument:d,prefix:!0}:{type:i.UnaryExpression,operator:l,argument:d,prefix:!0}},createVariableDeclaration:function(l,d){return{type:i.VariableDeclaration,declarations:l,kind:d}},createVariableDeclarator:function(l,d){return{type:i.VariableDeclarator,id:l,init:d}},createWhileStatement:function(l,d){return{type:i.WhileStatement,test:l,body:d}},createWithStatement:function(l,d){return{type:i.WithStatement,object:l,body:d}}};function jF(){var l,d,y,N;return l=c,d=S,y=Z,W(),N=S!==d,c=l,S=d,Z=y,N}function _(l,d){var y,N=Array.prototype.slice.call(arguments,2),I=d.replace(/%(\d)/g,function(C,FF){return X(FF<N.length,"Message reference must be in range"),N[FF]});throw typeof l.lineNumber=="number"?(y=new Error("Line "+l.lineNumber+": "+I),y.index=l.start,y.lineNumber=l.lineNumber,y.column=l.start-Z+1):(y=new Error("Line "+S+": "+I),y.index=c,y.lineNumber=S,y.column=c-Z+1),y.description=I,y}function eF(){try{_.apply(null,arguments)}catch(l){if(m.errors)m.errors.push(l);else throw l}}function mF(l){if(l.type===t.EOF&&_(l,r.UnexpectedEOS),l.type===t.NumericLiteral&&_(l,r.UnexpectedNumber),l.type===t.StringLiteral&&_(l,r.UnexpectedString),l.type===t.Identifier&&_(l,r.UnexpectedIdentifier),l.type===t.Keyword){if(nF(l.value))_(l,r.UnexpectedReserved);else if(u&&BF(l.value)){eF(l,r.StrictReservedWord);return}_(l,r.UnexpectedToken,l.value)}_(l,r.UnexpectedToken,l.value)}function v(l){var d=P();(d.type!==t.Punctuator||d.value!==l)&&mF(d)}function LF(l){var d=P();(d.type!==t.Keyword||d.value!==l)&&mF(d)}function j(l){return E.type===t.Punctuator&&E.value===l}function EF(l){return E.type===t.Keyword&&E.value===l}function _F(){var l;return E.type!==t.Punctuator?!1:(l=E.value,l==="="||l==="*="||l==="/="||l==="%="||l==="+="||l==="-="||l==="<<="||l===">>="||l===">>>="||l==="&="||l==="^="||l==="|=")}function ZF(){var l;if(x.charCodeAt(c)===59||j(";")){P();return}l=S,W(),S===l&&E.type!==t.EOF&&!j("}")&&mF(E)}function b(l){return l.type===i.Identifier||l.type===i.MemberExpression}function G(){var l=[],d;for(d=E,v("[");!j("]");)j(",")?(P(),l.push(null)):(l.push(hF()),j("]")||v(","));return P(),o.markEnd(o.createArrayExpression(l),d)}function QF(l,d){var y,N,I;return y=u,I=E,N=nU(),d&&u&&w(l[0].name)&&eF(d,r.StrictParamName),u=y,o.markEnd(o.createFunctionExpression(null,l,[],N),I)}function sF(){var l,d;return d=E,l=P(),l.type===t.StringLiteral||l.type===t.NumericLiteral?(u&&l.octal&&eF(l,r.StrictOctalLiteral),o.markEnd(o.createLiteral(l),d)):o.markEnd(o.createIdentifier(l.value),d)}function iF(){var l,d,y,N,I,C;if(l=E,C=E,l.type===t.Identifier)return y=sF(),l.value==="get"&&!j(":")?(d=sF(),v("("),v(")"),N=QF([]),o.markEnd(o.createProperty("get",d,N),C)):l.value==="set"&&!j(":")?(d=sF(),v("("),l=E,l.type!==t.Identifier?(v(")"),eF(l,r.UnexpectedToken,l.value),N=QF([])):(I=[YF()],v(")"),N=QF(I,l)),o.markEnd(o.createProperty("set",d,N),C)):(v(":"),N=hF(),o.markEnd(o.createProperty("init",y,N),C));if(l.type===t.EOF||l.type===t.Punctuator)mF(l);else return d=sF(),v(":"),N=hF(),o.markEnd(o.createProperty("init",d,N),C)}function q(){var l=[],d,y,N,I,C={},FF=String,tF;for(tF=E,v("{");!j("}");)d=iF(),d.key.type===i.Identifier?y=d.key.name:y=FF(d.key.value),I=d.kind==="init"?L.Data:d.kind==="get"?L.Get:L.Set,N="$"+y,Object.prototype.hasOwnProperty.call(C,N)?(C[N]===L.Data?u&&I===L.Data?eF({},r.StrictDuplicateProperty):I!==L.Data&&eF({},r.AccessorDataProperty):I===L.Data?eF({},r.AccessorDataProperty):C[N]&I&&eF({},r.AccessorGetSet),C[N]|=I):C[N]=I,l.push(d),j("}")||v(",");return v("}"),o.markEnd(o.createObjectExpression(l),tF)}function TF(){var l;return v("("),l=dF(),v(")"),l}function DF(){var l,d,y,N;if(j("("))return TF();if(j("["))return G();if(j("{"))return q();if(l=E.type,N=E,l===t.Identifier)y=o.createIdentifier(P().value);else if(l===t.StringLiteral||l===t.NumericLiteral)u&&E.octal&&eF(E,r.StrictOctalLiteral),y=o.createLiteral(P());else if(l===t.Keyword){if(EF("function"))return hU();EF("this")?(P(),y=o.createThisExpression()):mF(P())}else l===t.BooleanLiteral?(d=P(),d.value=d.value==="true",y=o.createLiteral(d)):l===t.NullLiteral?(d=P(),d.value=null,y=o.createLiteral(d)):j("/")||j("/=")?(typeof m.tokens<"u"?y=o.createLiteral(RF()):y=o.createLiteral(xF()),JF()):mF(P());return o.markEnd(y,N)}function pF(){var l=[];if(v("("),!j(")"))for(;c<h&&(l.push(hF()),!j(")"));)v(",");return v(")"),l}function MF(){var l,d;return d=E,l=P(),XF(l)||mF(l),o.markEnd(o.createIdentifier(l.value),d)}function vF(){return v("."),MF()}function kF(){var l;return v("["),l=dF(),v("]"),l}function bF(){var l,d,y;return y=E,LF("new"),l=eU(),d=j("(")?pF():[],o.markEnd(o.createNewExpression(l,d),y)}function QU(){var l,d,y,N,I;for(I=E,l=p.allowIn,p.allowIn=!0,d=EF("new")?bF():DF(),p.allowIn=l;;){if(j("."))N=vF(),d=o.createMemberExpression(".",d,N);else if(j("("))y=pF(),d=o.createCallExpression(d,y);else if(j("["))N=kF(),d=o.createMemberExpression("[",d,N);else break;o.markEnd(d,I)}return d}function eU(){var l,d,y,N;for(N=E,l=p.allowIn,d=EF("new")?bF():DF(),p.allowIn=l;j(".")||j("[");)j("[")?(y=kF(),d=o.createMemberExpression("[",d,y)):(y=vF(),d=o.createMemberExpression(".",d,y)),o.markEnd(d,N);return d}function AF(){var l,d,y=E;return l=QU(),E.type===t.Punctuator&&(j("++")||j("--"))&&!jF()&&(u&&l.type===i.Identifier&&w(l.name)&&eF({},r.StrictLHSPostfix),b(l)||eF({},r.InvalidLHSInAssignment),d=P(),l=o.markEnd(o.createPostfixExpression(d.value,l),y)),l}function IF(){var l,d,y;return E.type!==t.Punctuator&&E.type!==t.Keyword?d=AF():j("++")||j("--")?(y=E,l=P(),d=IF(),u&&d.type===i.Identifier&&w(d.name)&&eF({},r.StrictLHSPrefix),b(d)||eF({},r.InvalidLHSInAssignment),d=o.createUnaryExpression(l.value,d),d=o.markEnd(d,y)):j("+")||j("-")||j("~")||j("!")?(y=E,l=P(),d=IF(),d=o.createUnaryExpression(l.value,d),d=o.markEnd(d,y)):EF("delete")||EF("void")||EF("typeof")?(y=E,l=P(),d=IF(),d=o.createUnaryExpression(l.value,d),d=o.markEnd(d,y),u&&d.operator==="delete"&&d.argument.type===i.Identifier&&eF({},r.StrictDelete)):d=AF(),d}function zF(l,d){var y=0;if(l.type!==t.Punctuator&&l.type!==t.Keyword)return 0;switch(l.value){case"||":y=1;break;case"&&":y=2;break;case"|":y=3;break;case"^":y=4;break;case"&":y=5;break;case"==":case"!=":case"===":case"!==":y=6;break;case"<":case">":case"<=":case">=":case"instanceof":y=7;break;case"in":y=d?7:0;break;case"<<":case">>":case">>>":y=8;break;case"+":case"-":y=9;break;case"*":case"/":case"%":y=11;break}return y}function PF(){var l,d,y,N,I,C,FF,tF,yF,SF;if(l=E,yF=IF(),N=E,I=zF(N,p.allowIn),I===0)return yF;for(N.prec=I,P(),d=[l,E],FF=IF(),C=[yF,N,FF];(I=zF(E,p.allowIn))>0;){for(;C.length>2&&I<=C[C.length-2].prec;)FF=C.pop(),tF=C.pop().value,yF=C.pop(),y=o.createBinaryExpression(tF,yF,FF),d.pop(),l=d[d.length-1],o.markEnd(y,l),C.push(y);N=P(),N.prec=I,C.push(N),d.push(E),y=IF(),C.push(y)}for(SF=C.length-1,y=C[SF],d.pop();SF>1;)y=o.createBinaryExpression(C[SF-1].value,C[SF-2],y),SF-=2,l=d.pop(),o.markEnd(y,l);return y}function qF(){var l,d,y,N,I;return I=E,l=PF(),j("?")&&(P(),d=p.allowIn,p.allowIn=!0,y=hF(),p.allowIn=d,v(":"),N=hF(),l=o.createConditionalExpression(l,y,N),o.markEnd(l,I)),l}function hF(){var l,d,y,N,I;return l=E,I=E,N=d=qF(),_F()&&(b(d)||eF({},r.InvalidLHSInAssignment),u&&d.type===i.Identifier&&w(d.name)&&eF(l,r.StrictLHSAssignment),l=P(),y=hF(),N=o.markEnd(o.createAssignmentExpression(l.value,d,y),I)),N}function dF(){var l,d=E;if(l=hF(),j(",")){for(l=o.createSequenceExpression([l]);c<h&&j(",");)P(),l.expressions.push(hF());o.markEnd(l,d)}return l}function sU(){for(var l=[],d;c<h&&!(j("}")||(d=UU(),typeof d>"u"));)l.push(d);return l}function wF(){var l,d;return d=E,v("{"),l=sU(),v("}"),o.markEnd(o.createBlockStatement(l),d)}function YF(){var l,d;return d=E,l=P(),l.type!==t.Identifier&&mF(l),o.markEnd(o.createIdentifier(l.value),d)}function $F(l){var d=null,y,N;return N=E,y=YF(),u&&w(y.name)&&eF({},r.StrictVarName),l==="const"?(v("="),d=hF()):j("=")&&(P(),d=hF()),o.markEnd(o.createVariableDeclarator(y,d),N)}function KF(l){var d=[];do{if(d.push($F(l)),!j(","))break;P()}while(c<h);return d}function lU(){var l;return LF("var"),l=KF(),ZF(),o.createVariableDeclaration(l,"var")}function FU(l){var d,y;return y=E,LF(l),d=KF(l),ZF(),o.markEnd(o.createVariableDeclaration(d,l),y)}function HF(){return v(";"),o.createEmptyStatement()}function OF(){var l=dF();return ZF(),o.createExpressionStatement(l)}function iU(){var l,d,y;return LF("if"),v("("),l=dF(),v(")"),d=CF(),EF("else")?(P(),y=CF()):y=null,o.createIfStatement(l,d,y)}function BU(){var l,d,y;return LF("do"),y=p.inIteration,p.inIteration=!0,l=CF(),p.inIteration=y,LF("while"),v("("),d=dF(),v(")"),j(";")&&P(),o.createDoWhileStatement(l,d)}function LU(){var l,d,y;return LF("while"),v("("),l=dF(),v(")"),y=p.inIteration,p.inIteration=!0,d=CF(),p.inIteration=y,o.createWhileStatement(l,d)}function RU(){var l,d,y;return y=E,l=P(),d=KF(),o.markEnd(o.createVariableDeclaration(d,l.value),y)}function xU(){var l,d,y,N,I,C,FF;return l=d=y=null,LF("for"),v("("),j(";")?P():(EF("var")||EF("let")?(p.allowIn=!1,l=RU(),p.allowIn=!0,l.declarations.length===1&&EF("in")&&(P(),N=l,I=dF(),l=null)):(p.allowIn=!1,l=dF(),p.allowIn=!0,EF("in")&&(b(l)||eF({},r.InvalidLHSInForIn),P(),N=l,I=dF(),l=null)),typeof N>"u"&&v(";")),typeof N>"u"&&(j(";")||(d=dF()),v(";"),j(")")||(y=dF())),v(")"),FF=p.inIteration,p.inIteration=!0,C=CF(),p.inIteration=FF,typeof N>"u"?o.createForStatement(l,d,y,C):o.createForInStatement(N,I,C)}function dU(){var l=null,d;return LF("continue"),x.charCodeAt(c)===59?(P(),p.inIteration||_({},r.IllegalContinue),o.createContinueStatement(null)):jF()?(p.inIteration||_({},r.IllegalContinue),o.createContinueStatement(null)):(E.type===t.Identifier&&(l=YF(),d="$"+l.name,Object.prototype.hasOwnProperty.call(p.labelSet,d)||_({},r.UnknownLabel,l.name)),ZF(),l===null&&!p.inIteration&&_({},r.IllegalContinue),o.createContinueStatement(l))}function VU(){var l=null,d;return LF("break"),x.charCodeAt(c)===59?(P(),p.inIteration||p.inSwitch||_({},r.IllegalBreak),o.createBreakStatement(null)):jF()?(p.inIteration||p.inSwitch||_({},r.IllegalBreak),o.createBreakStatement(null)):(E.type===t.Identifier&&(l=YF(),d="$"+l.name,Object.prototype.hasOwnProperty.call(p.labelSet,d)||_({},r.UnknownLabel,l.name)),ZF(),l===null&&!(p.inIteration||p.inSwitch)&&_({},r.IllegalBreak),o.createBreakStatement(l))}function oU(){var l=null;return LF("return"),p.inFunctionBody||eF({},r.IllegalReturn),x.charCodeAt(c)===32&&g(x.charCodeAt(c+1))?(l=dF(),ZF(),o.createReturnStatement(l)):jF()?o.createReturnStatement(null):(j(";")||!j("}")&&E.type!==t.EOF&&(l=dF()),ZF(),o.createReturnStatement(l))}function EU(){var l,d;return u&&(W(),eF({},r.StrictModeWith)),LF("with"),v("("),l=dF(),v(")"),d=CF(),o.createWithStatement(l,d)}function uU(){var l,d=[],y,N;for(N=E,EF("default")?(P(),l=null):(LF("case"),l=dF()),v(":");c<h&&!(j("}")||EF("default")||EF("case"));)y=CF(),d.push(y);return o.markEnd(o.createSwitchCase(l,d),N)}function SU(){var l,d,y,N,I;if(LF("switch"),v("("),l=dF(),v(")"),v("{"),d=[],j("}"))return P(),o.createSwitchStatement(l,d);for(N=p.inSwitch,p.inSwitch=!0,I=!1;c<h&&!j("}");)y=uU(),y.test===null&&(I&&_({},r.MultipleDefaultsInSwitch),I=!0),d.push(y);return p.inSwitch=N,v("}"),o.createSwitchStatement(l,d)}function yU(){var l;return LF("throw"),jF()&&_({},r.NewlineAfterThrow),l=dF(),ZF(),o.createThrowStatement(l)}function mU(){var l,d,y;return y=E,LF("catch"),v("("),j(")")&&mF(E),l=YF(),u&&w(l.name)&&eF({},r.StrictCatchVariable),v(")"),d=wF(),o.markEnd(o.createCatchClause(l,d),y)}function pU(){var l,d=[],y=null;return LF("try"),l=wF(),EF("catch")&&d.push(mU()),EF("finally")&&(P(),y=wF()),d.length===0&&!y&&_({},r.NoCatchOrFinally),o.createTryStatement(l,[],d,y)}function ZU(){return LF("debugger"),ZF(),o.createDebuggerStatement()}function CF(){var l=E.type,d,y,N,I;if(l===t.EOF&&mF(E),l===t.Punctuator&&E.value==="{")return wF();if(I=E,l===t.Punctuator)switch(E.value){case";":return o.markEnd(HF(),I);case"(":return o.markEnd(OF(),I)}if(l===t.Keyword)switch(E.value){case"break":return o.markEnd(VU(),I);case"continue":return o.markEnd(dU(),I);case"debugger":return o.markEnd(ZU(),I);case"do":return o.markEnd(BU(),I);case"for":return o.markEnd(xU(),I);case"function":return o.markEnd(aU(),I);case"if":return o.markEnd(iU(),I);case"return":return o.markEnd(oU(),I);case"switch":return o.markEnd(SU(),I);case"throw":return o.markEnd(yU(),I);case"try":return o.markEnd(pU(),I);case"var":return o.markEnd(lU(),I);case"while":return o.markEnd(LU(),I);case"with":return o.markEnd(EU(),I)}return d=dF(),d.type===i.Identifier&&j(":")?(P(),N="$"+d.name,Object.prototype.hasOwnProperty.call(p.labelSet,N)&&_({},r.Redeclaration,"Label",d.name),p.labelSet[N]=!0,y=CF(),delete p.labelSet[N],o.markEnd(o.createLabeledStatement(d,y),I)):(ZF(),o.markEnd(o.createExpressionStatement(d),I))}function nU(){var l,d=[],y,N,I,C,FF,tF,yF,SF;for(SF=E,v("{");c<h&&!(E.type!==t.StringLiteral||(y=E,l=UU(),d.push(l),l.expression.type!==i.Literal));)N=x.slice(y.start+1,y.end-1),N==="use strict"?(u=!0,I&&eF(I,r.StrictOctalLiteral)):!I&&y.octal&&(I=y);for(C=p.labelSet,FF=p.inIteration,tF=p.inSwitch,yF=p.inFunctionBody,p.labelSet={},p.inIteration=!1,p.inSwitch=!1,p.inFunctionBody=!0;c<h&&!(j("}")||(l=UU(),typeof l>"u"));)d.push(l);return v("}"),p.labelSet=C,p.inIteration=FF,p.inSwitch=tF,p.inFunctionBody=yF,o.markEnd(o.createBlockStatement(d),SF)}function cU(l){var d,y=[],N,I,C,FF,tF;if(v("("),!j(")"))for(C={};c<h&&(N=E,d=YF(),FF="$"+N.value,u?(w(N.value)&&(I=N,tF=r.StrictParamName),Object.prototype.hasOwnProperty.call(C,FF)&&(I=N,tF=r.StrictParamDupe)):l||(w(N.value)?(l=N,tF=r.StrictParamName):BF(N.value)?(l=N,tF=r.StrictReservedWord):Object.prototype.hasOwnProperty.call(C,FF)&&(l=N,tF=r.StrictParamDupe)),y.push(d),C[FF]=!0,!j(")"));)v(",");return v(")"),{params:y,stricted:I,firstRestricted:l,message:tF}}function aU(){var l,d=[],y,N,I,C,FF,tF,yF,SF;return SF=E,LF("function"),N=E,l=YF(),u?w(N.value)&&eF(N,r.StrictFunctionName):w(N.value)?(FF=N,tF=r.StrictFunctionName):BF(N.value)&&(FF=N,tF=r.StrictReservedWord),C=cU(FF),d=C.params,I=C.stricted,FF=C.firstRestricted,C.message&&(tF=C.message),yF=u,y=nU(),u&&FF&&_(FF,tF),u&&I&&eF(I,tF),u=yF,o.markEnd(o.createFunctionDeclaration(l,d,[],y),SF)}function hU(){var l,d=null,y,N,I,C,FF=[],tF,yF,SF;return SF=E,LF("function"),j("(")||(l=E,d=YF(),u?w(l.value)&&eF(l,r.StrictFunctionName):w(l.value)?(N=l,I=r.StrictFunctionName):BF(l.value)&&(N=l,I=r.StrictReservedWord)),C=cU(N),FF=C.params,y=C.stricted,N=C.firstRestricted,C.message&&(I=C.message),yF=u,tF=nU(),u&&N&&_(N,I),u&&y&&eF(y,I),u=yF,o.markEnd(o.createFunctionExpression(d,FF,[],tF),SF)}function UU(){if(E.type===t.Keyword)switch(E.value){case"const":case"let":return FU(E.value);case"function":return aU();default:return CF()}if(E.type!==t.EOF)return CF()}function XU(){for(var l,d=[],y,N,I;c<h&&(y=E,!(y.type!==t.StringLiteral||(l=UU(),d.push(l),l.expression.type!==i.Literal)));)N=x.slice(y.start+1,y.end-1),N==="use strict"?(u=!0,I&&eF(I,r.StrictOctalLiteral)):!I&&y.octal&&(I=y);for(;c<h&&(l=UU(),!(typeof l>"u"));)d.push(l);return d}function NU(){var l,d;return W(),JF(),d=E,u=!1,l=XU(),o.markEnd(o.createProgram(l),d)}function rU(){var l,d,y,N=[];for(l=0;l<m.tokens.length;++l)d=m.tokens[l],y={type:d.type,value:d.value},m.range&&(y.range=d.range),m.loc&&(y.loc=d.loc),N.push(y);m.tokens=N}function bU(l,d){var y,N,I;y=String,typeof l!="string"&&!(l instanceof String)&&(l=y(l)),o=V,x=l,c=0,S=x.length>0?1:0,Z=0,h=x.length,E=null,p={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1,lastCommentStart:-1},m={},d=d||{},d.tokens=!0,m.tokens=[],m.tokenize=!0,m.openParenToken=-1,m.openCurlyToken=-1,m.range=typeof d.range=="boolean"&&d.range,m.loc=typeof d.loc=="boolean"&&d.loc,typeof d.comment=="boolean"&&d.comment&&(m.comments=[]),typeof d.tolerant=="boolean"&&d.tolerant&&(m.errors=[]);try{if(JF(),E.type===t.EOF)return m.tokens;for(N=P();E.type!==t.EOF;)try{N=P()}catch(C){if(N=E,m.errors){m.errors.push(C);break}else throw C}rU(),I=m.tokens,typeof m.comments<"u"&&(I.comments=m.comments),typeof m.errors<"u"&&(I.errors=m.errors)}catch(C){throw C}finally{m={}}return I}function GU(l,d){var y,N;N=String,typeof l!="string"&&!(l instanceof String)&&(l=N(l)),o=V,x=l,c=0,S=x.length>0?1:0,Z=0,h=x.length,E=null,p={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1,lastCommentStart:-1},m={},typeof d<"u"&&(m.range=typeof d.range=="boolean"&&d.range,m.loc=typeof d.loc=="boolean"&&d.loc,m.attachComment=typeof d.attachComment=="boolean"&&d.attachComment,m.loc&&d.source!==null&&d.source!==void 0&&(m.source=N(d.source)),typeof d.tokens=="boolean"&&d.tokens&&(m.tokens=[]),typeof d.comment=="boolean"&&d.comment&&(m.comments=[]),typeof d.tolerant=="boolean"&&d.tolerant&&(m.errors=[]),m.attachComment&&(m.range=!0,m.comments=[],m.bottomRightStack=[],m.trailingComments=[],m.leadingComments=[]));try{y=NU(),typeof m.comments<"u"&&(y.comments=m.comments),typeof m.tokens<"u"&&(rU(),y.tokens=m.tokens),typeof m.errors<"u"&&(y.errors=m.errors)}catch(I){throw I}finally{m={}}return y}B.version="1.2.2",B.tokenize=bU,B.parse=GU,B.Syntax=function(){var l,d={};typeof Object.create=="function"&&(d=Object.create(null));for(l in i)i.hasOwnProperty(l)&&(d[l]=i[l]);return typeof Object.freeze=="function"&&Object.freeze(d),d}()})},{}],1:[function(U,Q,e){(function(B){var t=function(){var n={trace:function(){},yy:{},symbols_:{error:2,JSON_PATH:3,DOLLAR:4,PATH_COMPONENTS:5,LEADING_CHILD_MEMBER_EXPRESSION:6,PATH_COMPONENT:7,MEMBER_COMPONENT:8,SUBSCRIPT_COMPONENT:9,CHILD_MEMBER_COMPONENT:10,DESCENDANT_MEMBER_COMPONENT:11,DOT:12,MEMBER_EXPRESSION:13,DOT_DOT:14,STAR:15,IDENTIFIER:16,SCRIPT_EXPRESSION:17,INTEGER:18,END:19,CHILD_SUBSCRIPT_COMPONENT:20,DESCENDANT_SUBSCRIPT_COMPONENT:21,"[":22,SUBSCRIPT:23,"]":24,SUBSCRIPT_EXPRESSION:25,SUBSCRIPT_EXPRESSION_LIST:26,SUBSCRIPT_EXPRESSION_LISTABLE:27,",":28,STRING_LITERAL:29,ARRAY_SLICE:30,FILTER_EXPRESSION:31,QQ_STRING:32,Q_STRING:33,$accept:0,$end:1},terminals_:{2:"error",4:"DOLLAR",12:"DOT",14:"DOT_DOT",15:"STAR",16:"IDENTIFIER",17:"SCRIPT_EXPRESSION",18:"INTEGER",19:"END",22:"[",24:"]",28:",",30:"ARRAY_SLICE",31:"FILTER_EXPRESSION",32:"QQ_STRING",33:"Q_STRING"},productions_:[0,[3,1],[3,2],[3,1],[3,2],[5,1],[5,2],[7,1],[7,1],[8,1],[8,1],[10,2],[6,1],[11,2],[13,1],[13,1],[13,1],[13,1],[13,1],[9,1],[9,1],[20,3],[21,4],[23,1],[23,1],[26,1],[26,3],[27,1],[27,1],[27,1],[25,1],[25,1],[25,1],[29,1],[29,1]],performAction:function(R,V,x,u,c,S,Z){u.ast||(u.ast=a,a.initialize());var h=S.length-1;switch(c){case 1:return u.ast.set({expression:{type:"root",value:S[h]}}),u.ast.unshift(),u.ast.yield();case 2:return u.ast.set({expression:{type:"root",value:S[h-1]}}),u.ast.unshift(),u.ast.yield();case 3:return u.ast.unshift(),u.ast.yield();case 4:return u.ast.set({operation:"member",scope:"child",expression:{type:"identifier",value:S[h-1]}}),u.ast.unshift(),u.ast.yield();case 5:break;case 6:break;case 7:u.ast.set({operation:"member"}),u.ast.push();break;case 8:u.ast.set({operation:"subscript"}),u.ast.push();break;case 9:u.ast.set({scope:"child"});break;case 10:u.ast.set({scope:"descendant"});break;case 11:break;case 12:u.ast.set({scope:"child",operation:"member"});break;case 13:break;case 14:u.ast.set({expression:{type:"wildcard",value:S[h]}});break;case 15:u.ast.set({expression:{type:"identifier",value:S[h]}});break;case 16:u.ast.set({expression:{type:"script_expression",value:S[h]}});break;case 17:u.ast.set({expression:{type:"numeric_literal",value:parseInt(S[h])}});break;case 18:break;case 19:u.ast.set({scope:"child"});break;case 20:u.ast.set({scope:"descendant"});break;case 21:break;case 22:break;case 23:break;case 24:S[h].length>1?u.ast.set({expression:{type:"union",value:S[h]}}):this.$=S[h];break;case 25:this.$=[S[h]];break;case 26:this.$=S[h-2].concat(S[h]);break;case 27:this.$={expression:{type:"numeric_literal",value:parseInt(S[h])}},u.ast.set(this.$);break;case 28:this.$={expression:{type:"string_literal",value:S[h]}},u.ast.set(this.$);break;case 29:this.$={expression:{type:"slice",value:S[h]}},u.ast.set(this.$);break;case 30:this.$={expression:{type:"wildcard",value:S[h]}},u.ast.set(this.$);break;case 31:this.$={expression:{type:"script_expression",value:S[h]}},u.ast.set(this.$);break;case 32:this.$={expression:{type:"filter_expression",value:S[h]}},u.ast.set(this.$);break;case 33:this.$=S[h];break;case 34:this.$=S[h];break}},table:[{3:1,4:[1,2],6:3,13:4,15:[1,5],16:[1,6],17:[1,7],18:[1,8],19:[1,9]},{1:[3]},{1:[2,1],5:10,7:11,8:12,9:13,10:14,11:15,12:[1,18],14:[1,19],20:16,21:17,22:[1,20]},{1:[2,3],5:21,7:11,8:12,9:13,10:14,11:15,12:[1,18],14:[1,19],20:16,21:17,22:[1,20]},{1:[2,12],12:[2,12],14:[2,12],22:[2,12]},{1:[2,14],12:[2,14],14:[2,14],22:[2,14]},{1:[2,15],12:[2,15],14:[2,15],22:[2,15]},{1:[2,16],12:[2,16],14:[2,16],22:[2,16]},{1:[2,17],12:[2,17],14:[2,17],22:[2,17]},{1:[2,18],12:[2,18],14:[2,18],22:[2,18]},{1:[2,2],7:22,8:12,9:13,10:14,11:15,12:[1,18],14:[1,19],20:16,21:17,22:[1,20]},{1:[2,5],12:[2,5],14:[2,5],22:[2,5]},{1:[2,7],12:[2,7],14:[2,7],22:[2,7]},{1:[2,8],12:[2,8],14:[2,8],22:[2,8]},{1:[2,9],12:[2,9],14:[2,9],22:[2,9]},{1:[2,10],12:[2,10],14:[2,10],22:[2,10]},{1:[2,19],12:[2,19],14:[2,19],22:[2,19]},{1:[2,20],12:[2,20],14:[2,20],22:[2,20]},{13:23,15:[1,5],16:[1,6],17:[1,7],18:[1,8],19:[1,9]},{13:24,15:[1,5],16:[1,6],17:[1,7],18:[1,8],19:[1,9],22:[1,25]},{15:[1,29],17:[1,30],18:[1,33],23:26,25:27,26:28,27:32,29:34,30:[1,35],31:[1,31],32:[1,36],33:[1,37]},{1:[2,4],7:22,8:12,9:13,10:14,11:15,12:[1,18],14:[1,19],20:16,21:17,22:[1,20]},{1:[2,6],12:[2,6],14:[2,6],22:[2,6]},{1:[2,11],12:[2,11],14:[2,11],22:[2,11]},{1:[2,13],12:[2,13],14:[2,13],22:[2,13]},{15:[1,29],17:[1,30],18:[1,33],23:38,25:27,26:28,27:32,29:34,30:[1,35],31:[1,31],32:[1,36],33:[1,37]},{24:[1,39]},{24:[2,23]},{24:[2,24],28:[1,40]},{24:[2,30]},{24:[2,31]},{24:[2,32]},{24:[2,25],28:[2,25]},{24:[2,27],28:[2,27]},{24:[2,28],28:[2,28]},{24:[2,29],28:[2,29]},{24:[2,33],28:[2,33]},{24:[2,34],28:[2,34]},{24:[1,41]},{1:[2,21],12:[2,21],14:[2,21],22:[2,21]},{18:[1,33],27:42,29:34,30:[1,35],32:[1,36],33:[1,37]},{1:[2,22],12:[2,22],14:[2,22],22:[2,22]},{24:[2,26],28:[2,26]}],defaultActions:{27:[2,23],29:[2,30],30:[2,31],31:[2,32]},parseError:function(R,V){if(V.recoverable)this.trace(R);else throw new Error(R)},parse:function(R){var V=this,x=[0],u=[null],c=[],S=this.table,Z="",h=0,o=0,E=2,p=1,m=c.slice.call(arguments,1);this.lexer.setInput(R),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,this.yy.parser=this,typeof this.lexer.yylloc>"u"&&(this.lexer.yylloc={});var X=this.lexer.yylloc;c.push(X);var T=this.lexer.options&&this.lexer.options.ranges;typeof this.yy.parseError=="function"?this.parseError=this.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function M(){var VF;return VF=V.lexer.lex()||p,typeof VF!="number"&&(VF=V.symbols_[VF]||VF),VF}for(var D,Y,k,g,K={},nF,BF,w,cF;;){if(Y=x[x.length-1],this.defaultActions[Y]?k=this.defaultActions[Y]:((D===null||typeof D>"u")&&(D=M()),k=S[Y]&&S[Y][D]),typeof k>"u"||!k.length||!k[0]){var rF="";cF=[];for(nF in S[Y])this.terminals_[nF]&&nF>E&&cF.push("'"+this.terminals_[nF]+"'");this.lexer.showPosition?rF="Parse error on line "+(h+1)+`:
|
|
10
|
+
`+this.lexer.showPosition()+`
|
|
11
|
+
Expecting `+cF.join(", ")+", got '"+(this.terminals_[D]||D)+"'":rF="Parse error on line "+(h+1)+": Unexpected "+(D==p?"end of input":"'"+(this.terminals_[D]||D)+"'"),this.parseError(rF,{text:this.lexer.match,token:this.terminals_[D]||D,line:this.lexer.yylineno,loc:X,expected:cF})}if(k[0]instanceof Array&&k.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Y+", token: "+D);switch(k[0]){case 1:x.push(D),u.push(this.lexer.yytext),c.push(this.lexer.yylloc),x.push(k[1]),D=null,o=this.lexer.yyleng,Z=this.lexer.yytext,h=this.lexer.yylineno,X=this.lexer.yylloc;break;case 2:if(BF=this.productions_[k[1]][1],K.$=u[u.length-BF],K._$={first_line:c[c.length-(BF||1)].first_line,last_line:c[c.length-1].last_line,first_column:c[c.length-(BF||1)].first_column,last_column:c[c.length-1].last_column},T&&(K._$.range=[c[c.length-(BF||1)].range[0],c[c.length-1].range[1]]),g=this.performAction.apply(K,[Z,o,h,this.yy,k[1],u,c].concat(m)),typeof g<"u")return g;BF&&(x=x.slice(0,-1*BF*2),u=u.slice(0,-1*BF),c=c.slice(0,-1*BF)),x.push(this.productions_[k[1]][0]),u.push(K.$),c.push(K._$),w=S[x[x.length-2]][x[x.length-1]],x.push(w);break;case 3:return!0}}return!0}},a={initialize:function(){this._nodes=[],this._node={},this._stash=[]},set:function(r){for(var R in r)this._node[R]=r[R];return this._node},node:function(r){return arguments.length&&(this._node=r),this._node},push:function(){this._nodes.push(this._node),this._node={}},unshift:function(){this._nodes.unshift(this._node),this._node={}},yield:function(){var r=this._nodes;return this.initialize(),r}},i=function(){var r={EOF:1,parseError:function(V,x){if(this.yy.parser)this.yy.parser.parseError(V,x);else throw new Error(V)},setInput:function(R){return this._input=R,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var R=this._input[0];this.yytext+=R,this.yyleng++,this.offset++,this.match+=R,this.matched+=R;var V=R.match(/(?:\r\n?|\n).*/g);return V?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),R},unput:function(R){var V=R.length,x=R.split(/(?:\r\n?|\n)/g);this._input=R+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-V-1),this.offset-=V;var u=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),x.length-1&&(this.yylineno-=x.length-1);var c=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:x?(x.length===u.length?this.yylloc.first_column:0)+u[u.length-x.length].length-x[0].length:this.yylloc.first_column-V},this.options.ranges&&(this.yylloc.range=[c[0],c[0]+this.yyleng-V]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
|
|
12
|
+
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(R){this.unput(this.match.slice(R))},pastInput:function(){var R=this.matched.substr(0,this.matched.length-this.match.length);return(R.length>20?"...":"")+R.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var R=this.match;return R.length<20&&(R+=this._input.substr(0,20-R.length)),(R.substr(0,20)+(R.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var R=this.pastInput(),V=new Array(R.length+1).join("-");return R+this.upcomingInput()+`
|
|
13
|
+
`+V+"^"},test_match:function(R,V){var x,u,c;if(this.options.backtrack_lexer&&(c={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(c.yylloc.range=this.yylloc.range.slice(0))),u=R[0].match(/(?:\r\n?|\n).*/g),u&&(this.yylineno+=u.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:u?u[u.length-1].length-u[u.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+R[0].length},this.yytext+=R[0],this.match+=R[0],this.matches=R,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(R[0].length),this.matched+=R[0],x=this.performAction.call(this,this.yy,this,V,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),x)return x;if(this._backtrack){for(var S in c)this[S]=c[S];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var R,V,x,u;this._more||(this.yytext="",this.match="");for(var c=this._currentRules(),S=0;S<c.length;S++)if(x=this._input.match(this.rules[c[S]]),x&&(!V||x[0].length>V[0].length)){if(V=x,u=S,this.options.backtrack_lexer){if(R=this.test_match(x,c[S]),R!==!1)return R;if(this._backtrack){V=!1;continue}else return!1}else if(!this.options.flex)break}return V?(R=this.test_match(V,c[u]),R!==!1?R:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
|
|
14
|
+
`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var V=this.next();return V||this.lex()},begin:function(V){this.conditionStack.push(V)},popState:function(){var V=this.conditionStack.length-1;return V>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(V){return V=this.conditionStack.length-1-Math.abs(V||0),V>=0?this.conditionStack[V]:"INITIAL"},pushState:function(V){this.begin(V)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(V,x,u,c){switch(u){case 0:return 4;case 1:return 14;case 2:return 12;case 3:return 15;case 4:return 16;case 5:return 22;case 6:return 24;case 7:return 28;case 8:return 30;case 9:return 18;case 10:return x.yytext=x.yytext.substr(1,x.yyleng-2),32;case 11:return x.yytext=x.yytext.substr(1,x.yyleng-2),33;case 12:return 17;case 13:return 31}},rules:[/^(?:\$)/,/^(?:\.\.)/,/^(?:\.)/,/^(?:\*)/,/^(?:[a-zA-Z_]+[a-zA-Z0-9_]*)/,/^(?:\[)/,/^(?:\])/,/^(?:,)/,/^(?:((-?(?:0|[1-9][0-9]*)))?\:((-?(?:0|[1-9][0-9]*)))?(\:((-?(?:0|[1-9][0-9]*)))?)?)/,/^(?:(-?(?:0|[1-9][0-9]*)))/,/^(?:"(?:\\["bfnrt/\\]|\\u[a-fA-F0-9]{4}|[^"\\])*")/,/^(?:'(?:\\['bfnrt/\\]|\\u[a-fA-F0-9]{4}|[^'\\])*')/,/^(?:\(.+?\)(?=\]))/,/^(?:\?\(.+?\)(?=\]))/],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],inclusive:!0}}};return r}();n.lexer=i;function L(){this.yy={}}return L.prototype=n,n.Parser=L,new L}();typeof U<"u"&&typeof e<"u"&&(e.parser=t,e.Parser=t.Parser,e.parse=function(){return t.parse.apply(t,arguments)},e.main=function(a){a[1]||(console.log("Usage: "+a[0]+" FILE"),B.exit(1));var i=U("fs").readFileSync(U("path").normalize(a[1]),"utf8");return e.parser.parse(i)},typeof Q<"u"&&U.main===Q&&e.main(B.argv.slice(1)))}).call(this,U("_process"))},{_process:14,fs:12,path:13}],2:[function(U,Q,e){Q.exports={identifier:"[a-zA-Z_]+[a-zA-Z0-9_]*",integer:"-?(?:0|[1-9][0-9]*)",qq_string:'"(?:\\\\["bfnrt/\\\\]|\\\\u[a-fA-F0-9]{4}|[^"\\\\])*"',q_string:"'(?:\\\\['bfnrt/\\\\]|\\\\u[a-fA-F0-9]{4}|[^'\\\\])*'"}},{}],3:[function(U,Q,e){var B=U("./dict"),t=U("fs"),n={lex:{macros:{esc:"\\\\",int:B.integer},rules:[["\\$","return 'DOLLAR'"],["\\.\\.","return 'DOT_DOT'"],["\\.","return 'DOT'"],["\\*","return 'STAR'"],[B.identifier,"return 'IDENTIFIER'"],["\\[","return '['"],["\\]","return ']'"],[",","return ','"],["({int})?\\:({int})?(\\:({int})?)?","return 'ARRAY_SLICE'"],["{int}","return 'INTEGER'"],[B.qq_string,"yytext = yytext.substr(1,yyleng-2); return 'QQ_STRING';"],[B.q_string,"yytext = yytext.substr(1,yyleng-2); return 'Q_STRING';"],["\\(.+?\\)(?=\\])","return 'SCRIPT_EXPRESSION'"],["\\?\\(.+?\\)(?=\\])","return 'FILTER_EXPRESSION'"]]},start:"JSON_PATH",bnf:{JSON_PATH:[["DOLLAR",'yy.ast.set({ expression: { type: "root", value: $1 } }); yy.ast.unshift(); return yy.ast.yield()'],["DOLLAR PATH_COMPONENTS",'yy.ast.set({ expression: { type: "root", value: $1 } }); yy.ast.unshift(); return yy.ast.yield()'],["LEADING_CHILD_MEMBER_EXPRESSION","yy.ast.unshift(); return yy.ast.yield()"],["LEADING_CHILD_MEMBER_EXPRESSION PATH_COMPONENTS",'yy.ast.set({ operation: "member", scope: "child", expression: { type: "identifier", value: $1 }}); yy.ast.unshift(); return yy.ast.yield()']],PATH_COMPONENTS:[["PATH_COMPONENT",""],["PATH_COMPONENTS PATH_COMPONENT",""]],PATH_COMPONENT:[["MEMBER_COMPONENT",'yy.ast.set({ operation: "member" }); yy.ast.push()'],["SUBSCRIPT_COMPONENT",'yy.ast.set({ operation: "subscript" }); yy.ast.push() ']],MEMBER_COMPONENT:[["CHILD_MEMBER_COMPONENT",'yy.ast.set({ scope: "child" })'],["DESCENDANT_MEMBER_COMPONENT",'yy.ast.set({ scope: "descendant" })']],CHILD_MEMBER_COMPONENT:[["DOT MEMBER_EXPRESSION",""]],LEADING_CHILD_MEMBER_EXPRESSION:[["MEMBER_EXPRESSION",'yy.ast.set({ scope: "child", operation: "member" })']],DESCENDANT_MEMBER_COMPONENT:[["DOT_DOT MEMBER_EXPRESSION",""]],MEMBER_EXPRESSION:[["STAR",'yy.ast.set({ expression: { type: "wildcard", value: $1 } })'],["IDENTIFIER",'yy.ast.set({ expression: { type: "identifier", value: $1 } })'],["SCRIPT_EXPRESSION",'yy.ast.set({ expression: { type: "script_expression", value: $1 } })'],["INTEGER",'yy.ast.set({ expression: { type: "numeric_literal", value: parseInt($1) } })'],["END",""]],SUBSCRIPT_COMPONENT:[["CHILD_SUBSCRIPT_COMPONENT",'yy.ast.set({ scope: "child" })'],["DESCENDANT_SUBSCRIPT_COMPONENT",'yy.ast.set({ scope: "descendant" })']],CHILD_SUBSCRIPT_COMPONENT:[["[ SUBSCRIPT ]",""]],DESCENDANT_SUBSCRIPT_COMPONENT:[["DOT_DOT [ SUBSCRIPT ]",""]],SUBSCRIPT:[["SUBSCRIPT_EXPRESSION",""],["SUBSCRIPT_EXPRESSION_LIST",'$1.length > 1? yy.ast.set({ expression: { type: "union", value: $1 } }) : $$ = $1']],SUBSCRIPT_EXPRESSION_LIST:[["SUBSCRIPT_EXPRESSION_LISTABLE","$$ = [$1]"],["SUBSCRIPT_EXPRESSION_LIST , SUBSCRIPT_EXPRESSION_LISTABLE","$$ = $1.concat($3)"]],SUBSCRIPT_EXPRESSION_LISTABLE:[["INTEGER",'$$ = { expression: { type: "numeric_literal", value: parseInt($1) } }; yy.ast.set($$)'],["STRING_LITERAL",'$$ = { expression: { type: "string_literal", value: $1 } }; yy.ast.set($$)'],["ARRAY_SLICE",'$$ = { expression: { type: "slice", value: $1 } }; yy.ast.set($$)']],SUBSCRIPT_EXPRESSION:[["STAR",'$$ = { expression: { type: "wildcard", value: $1 } }; yy.ast.set($$)'],["SCRIPT_EXPRESSION",'$$ = { expression: { type: "script_expression", value: $1 } }; yy.ast.set($$)'],["FILTER_EXPRESSION",'$$ = { expression: { type: "filter_expression", value: $1 } }; yy.ast.set($$)']],STRING_LITERAL:[["QQ_STRING","$$ = $1"],["Q_STRING","$$ = $1"]]}};t.readFileSync&&(n.moduleInclude=t.readFileSync(U.resolve("../include/module.js")),n.actionInclude=t.readFileSync(U.resolve("../include/action.js"))),Q.exports=n},{"./dict":2,fs:12}],4:[function(U,Q,e){var B=U("./aesprim"),t=U("./slice"),n=U("static-eval"),a=U("underscore").uniq,i=function(){return this.initialize.apply(this,arguments)};i.prototype.initialize=function(){this.traverse=V(!0),this.descend=V()},i.prototype.keys=Object.keys,i.prototype.resolve=function(h){var o=[h.operation,h.scope,h.expression.type].join("-"),E=this._fns[o];if(!E)throw new Error("couldn't resolve key: "+o);return E.bind(this)},i.prototype.register=function(h,o){if(!o instanceof Function)throw new Error("handler must be a function");this._fns[h]=o},i.prototype._fns={"member-child-identifier":function(h,o){var E=h.expression.value,p=o.value;if(p instanceof Object&&E in p)return[{value:p[E],path:o.path.concat(E)}]},"member-descendant-identifier":u(function(h,o,E){return h==E}),"subscript-child-numeric_literal":x(function(h,o,E){return h===E}),"member-child-numeric_literal":x(function(h,o,E){return String(h)===String(E)}),"subscript-descendant-numeric_literal":u(function(h,o,E){return h===E}),"member-child-wildcard":x(function(){return!0}),"member-descendant-wildcard":u(function(){return!0}),"subscript-descendant-wildcard":u(function(){return!0}),"subscript-child-wildcard":x(function(){return!0}),"subscript-child-slice":function(h,o){if(r(o.value)){var E=h.expression.value.split(":").map(Z),p=o.value.map(function(m,X){return{value:m,path:o.path.concat(X)}});return t.apply(null,[p].concat(E))}},"subscript-child-union":function(h,o){var E=[];return h.expression.value.forEach(function(p){var m={operation:"subscript",scope:"child",expression:p.expression},X=this.resolve(m),T=X(m,o);T&&(E=E.concat(T))},this),S(E)},"subscript-descendant-union":function(h,o,E){var p=U(".."),m=this,X=[],T=p.nodes(o,"$..*").slice(1);return T.forEach(function(M){X.length>=E||h.expression.value.forEach(function(D){var Y={operation:"subscript",scope:"child",expression:D.expression},k=m.resolve(Y),g=k(Y,M);X=X.concat(g)})}),S(X)},"subscript-child-filter_expression":function(h,o,E){var p=h.expression.value.slice(2,-1),m=B.parse(p).body[0].expression,X=function(T,M){return c(m,{"@":M})};return this.descend(o,null,X,E)},"subscript-descendant-filter_expression":function(h,o,E){var p=h.expression.value.slice(2,-1),m=B.parse(p).body[0].expression,X=function(T,M){return c(m,{"@":M})};return this.traverse(o,null,X,E)},"subscript-child-script_expression":function(h,o){var E=h.expression.value.slice(1,-1);return L(o,E,"$[{{value}}]")},"member-child-script_expression":function(h,o){var E=h.expression.value.slice(1,-1);return L(o,E,"$.{{value}}")},"member-descendant-script_expression":function(h,o){var E=h.expression.value.slice(1,-1);return L(o,E,"$..value")}},i.prototype._fns["subscript-child-string_literal"]=i.prototype._fns["member-child-identifier"],i.prototype._fns["member-descendant-numeric_literal"]=i.prototype._fns["subscript-descendant-string_literal"]=i.prototype._fns["member-descendant-identifier"];function L(h,o,E){var p=U("./index"),m=B.parse(o).body[0].expression,X=c(m,{"@":h.value}),T=E.replace(/\{\{\s*value\s*\}\}/g,X),M=p.nodes(h.value,T);return M.forEach(function(D){D.path=h.path.concat(D.path.slice(1))}),M}function r(h){return Array.isArray(h)}function R(h){return h&&!(h instanceof Array)&&h instanceof Object}function V(h){return function(o,E,p,m){var X=o.value,T=o.path,M=[],D=(function(Y,k){r(Y)?(Y.forEach(function(g,K){M.length>=m||p(K,g,E)&&M.push({path:k.concat(K),value:g})}),Y.forEach(function(g,K){M.length>=m||h&&D(g,k.concat(K))})):R(Y)&&(this.keys(Y).forEach(function(g){M.length>=m||p(g,Y[g],E)&&M.push({path:k.concat(g),value:Y[g]})}),this.keys(Y).forEach(function(g){M.length>=m||h&&D(Y[g],k.concat(g))}))}).bind(this);return D(X,T),M}}function x(h){return function(o,E,p){return this.descend(E,o.expression.value,h,p)}}function u(h){return function(o,E,p){return this.traverse(E,o.expression.value,h,p)}}function c(){try{return n.apply(this,arguments)}catch{}}function S(h){return h=h.filter(function(o){return o}),a(h,function(o){return o.path.map(function(E){return String(E).replace("-","--")}).join("-")})}function Z(h){var o=String(h);return o.match(/^-?[0-9]+$/)?parseInt(o):null}Q.exports=i},{"..":"jsonpath","./aesprim":"./aesprim","./index":5,"./slice":7,"static-eval":15,underscore:12}],5:[function(U,Q,e){var B=U("assert"),t=U("./dict"),n=U("./parser"),a=U("./handlers"),i=function(){this.initialize.apply(this,arguments)};i.prototype.initialize=function(){this.parser=new n,this.handlers=new a},i.prototype.parse=function(R){return B.ok(L(R),"we need a path"),this.parser.parse(R)},i.prototype.parent=function(R,V){B.ok(R instanceof Object,"obj needs to be an object"),B.ok(V,"we need a path");var x=this.nodes(R,V)[0];return x.path.pop(),this.value(R,x.path)},i.prototype.apply=function(R,V,x){B.ok(R instanceof Object,"obj needs to be an object"),B.ok(V,"we need a path"),B.equal(typeof x,"function","fn needs to be function");var u=this.nodes(R,V).sort(function(c,S){return S.path.length-c.path.length});return u.forEach(function(c){var S=c.path.pop(),Z=this.value(R,this.stringify(c.path)),h=c.value=x.call(R,Z[S]);Z[S]=h},this),u},i.prototype.value=function(R,V,x){if(B.ok(R instanceof Object,"obj needs to be an object"),B.ok(V,"we need a path"),arguments.length>=3){var u=this.nodes(R,V).shift();if(!u)return this._vivify(R,V,x);var c=u.path.slice(-1).shift(),S=this.parent(R,this.stringify(u.path));S[c]=x}return this.query(R,this.stringify(V),1).shift()},i.prototype._vivify=function(R,V,x){var u=this;B.ok(R instanceof Object,"obj needs to be an object"),B.ok(V,"we need a path");var c=this.parser.parse(V).map(function(Z){return Z.expression.value}),S=function(Z,h){var o=Z.pop(),E=u.value(R,Z);E||(S(Z.concat(),typeof o=="string"?{}:[]),E=u.value(R,Z)),E[o]=h};return S(c,x),this.query(R,V)[0]},i.prototype.query=function(R,V,x){B.ok(R instanceof Object,"obj needs to be an object"),B.ok(L(V),"we need a path");var u=this.nodes(R,V,x).map(function(c){return c.value});return u},i.prototype.paths=function(R,V,x){B.ok(R instanceof Object,"obj needs to be an object"),B.ok(V,"we need a path");var u=this.nodes(R,V,x).map(function(c){return c.path});return u},i.prototype.nodes=function(R,V,x){if(B.ok(R instanceof Object,"obj needs to be an object"),B.ok(V,"we need a path"),x===0)return[];var u=this.parser.parse(V),c=this.handlers,S=[{path:["$"],value:R}],Z=[];return u.length&&u[0].expression.type=="root"&&u.shift(),u.length?(u.forEach(function(h,o){if(!(Z.length>=x)){var E=c.resolve(h),p=[];S.forEach(function(m){if(!(Z.length>=x)){var X=E(h,m,x);o==u.length-1?Z=Z.concat(X||[]):p=p.concat(X||[])}}),S=p}}),x?Z.slice(0,x):Z):S},i.prototype.stringify=function(R){B.ok(R,"we need a path");var V="$",x={"descendant-member":"..{{value}}","child-member":".{{value}}","descendant-subscript":"..[{{value}}]","child-subscript":"[{{value}}]"};return R=this._normalize(R),R.forEach(function(u){if(u.expression.type!="root"){var c=[u.scope,u.operation].join("-"),S=x[c],Z;if(u.expression.type=="string_literal"?Z=JSON.stringify(u.expression.value):Z=u.expression.value,!S)throw new Error("couldn't find template "+c);V+=S.replace(/{{value}}/,Z)}}),V},i.prototype._normalize=function(R){if(B.ok(R,"we need a path"),typeof R=="string")return this.parser.parse(R);if(Array.isArray(R)&&typeof R[0]=="string"){var V=[{expression:{type:"root",value:"$"}}];return R.forEach(function(x,u){if(!(x=="$"&&u===0))if(typeof x=="string"&&x.match("^"+t.identifier+"$"))V.push({operation:"member",scope:"child",expression:{value:x,type:"identifier"}});else{var c=typeof x=="number"?"numeric_literal":"string_literal";V.push({operation:"subscript",scope:"child",expression:{value:x,type:c}})}}),V}else if(Array.isArray(R)&&typeof R[0]=="object")return R;throw new Error("couldn't understand path "+R)};function L(R){return Object.prototype.toString.call(R)=="[object String]"}i.Handlers=a,i.Parser=n;var r=new i;r.JSONPath=i,Q.exports=r},{"./dict":2,"./handlers":4,"./parser":6,assert:8}],6:[function(U,Q,e){var B=U("./grammar"),t=U("../generated/parser"),n=function(){var a=new t.Parser,i=a.parseError;return a.yy.parseError=function(){a.yy.ast&&a.yy.ast.initialize(),i.apply(a,arguments)},a};n.grammar=B,Q.exports=n},{"../generated/parser":1,"./grammar":3}],7:[function(U,Q,e){Q.exports=function(t,n,a,i){if(typeof n=="string")throw new Error("start cannot be a string");if(typeof a=="string")throw new Error("end cannot be a string");if(typeof i=="string")throw new Error("step cannot be a string");var L=t.length;if(i===0)throw new Error("step cannot be zero");if(i=i?B(i):1,n=n<0?L+n:n,a=a<0?L+a:a,n=B(n===0?0:n||(i>0?0:L-1)),a=B(a===0?0:a||(i>0?L:-1)),n=i>0?Math.max(0,n):Math.min(L,n),a=i>0?Math.min(a,L):Math.max(-1,a),i>0&&a<=n)return[];if(i<0&&n<=a)return[];for(var r=[],R=n;R!=a&&!(i<0&&R<=a||i>0&&R>=a);R+=i)r.push(t[R]);return r};function B(t){return String(t).match(/^[0-9]+$/)?parseInt(t):Number.isFinite(t)?parseInt(t,10):0}},{}],8:[function(U,Q,e){var B=U("util/"),t=Array.prototype.slice,n=Object.prototype.hasOwnProperty,a=Q.exports=V;a.AssertionError=function(E){this.name="AssertionError",this.actual=E.actual,this.expected=E.expected,this.operator=E.operator,E.message?(this.message=E.message,this.generatedMessage=!1):(this.message=r(this),this.generatedMessage=!0);var p=E.stackStartFunction||R;if(Error.captureStackTrace)Error.captureStackTrace(this,p);else{var m=new Error;if(m.stack){var X=m.stack,T=p.name,M=X.indexOf(`
|
|
15
|
+
`+T);if(M>=0){var D=X.indexOf(`
|
|
16
|
+
`,M+1);X=X.substring(D+1)}this.stack=X}}},B.inherits(a.AssertionError,Error);function i(o,E){return B.isUndefined(E)?""+E:B.isNumber(E)&&!isFinite(E)||B.isFunction(E)||B.isRegExp(E)?E.toString():E}function L(o,E){return B.isString(o)?o.length<E?o:o.slice(0,E):o}function r(o){return L(JSON.stringify(o.actual,i),128)+" "+o.operator+" "+L(JSON.stringify(o.expected,i),128)}function R(o,E,p,m,X){throw new a.AssertionError({message:p,actual:o,expected:E,operator:m,stackStartFunction:X})}a.fail=R;function V(o,E){o||R(o,!0,E,"==",a.ok)}a.ok=V,a.equal=function(E,p,m){E!=p&&R(E,p,m,"==",a.equal)},a.notEqual=function(E,p,m){E==p&&R(E,p,m,"!=",a.notEqual)},a.deepEqual=function(E,p,m){x(E,p)||R(E,p,m,"deepEqual",a.deepEqual)};function x(o,E){if(o===E)return!0;if(B.isBuffer(o)&&B.isBuffer(E)){if(o.length!=E.length)return!1;for(var p=0;p<o.length;p++)if(o[p]!==E[p])return!1;return!0}else return B.isDate(o)&&B.isDate(E)?o.getTime()===E.getTime():B.isRegExp(o)&&B.isRegExp(E)?o.source===E.source&&o.global===E.global&&o.multiline===E.multiline&&o.lastIndex===E.lastIndex&&o.ignoreCase===E.ignoreCase:!B.isObject(o)&&!B.isObject(E)?o==E:c(o,E)}function u(o){return Object.prototype.toString.call(o)=="[object Arguments]"}function c(o,E){if(B.isNullOrUndefined(o)||B.isNullOrUndefined(E)||o.prototype!==E.prototype)return!1;if(B.isPrimitive(o)||B.isPrimitive(E))return o===E;var p=u(o),m=u(E);if(p&&!m||!p&&m)return!1;if(p)return o=t.call(o),E=t.call(E),x(o,E);var X=h(o),T=h(E),M,D;if(X.length!=T.length)return!1;for(X.sort(),T.sort(),D=X.length-1;D>=0;D--)if(X[D]!=T[D])return!1;for(D=X.length-1;D>=0;D--)if(M=X[D],!x(o[M],E[M]))return!1;return!0}a.notDeepEqual=function(E,p,m){x(E,p)&&R(E,p,m,"notDeepEqual",a.notDeepEqual)},a.strictEqual=function(E,p,m){E!==p&&R(E,p,m,"===",a.strictEqual)},a.notStrictEqual=function(E,p,m){E===p&&R(E,p,m,"!==",a.notStrictEqual)};function S(o,E){return!o||!E?!1:Object.prototype.toString.call(E)=="[object RegExp]"?E.test(o):o instanceof E?!0:E.call({},o)===!0}function Z(o,E,p,m){var X;B.isString(p)&&(m=p,p=null);try{E()}catch(T){X=T}if(m=(p&&p.name?" ("+p.name+").":".")+(m?" "+m:"."),o&&!X&&R(X,p,"Missing expected exception"+m),!o&&S(X,p)&&R(X,p,"Got unwanted exception"+m),o&&X&&p&&!S(X,p)||!o&&X)throw X}a.throws=function(o,E,p){Z.apply(this,[!0].concat(t.call(arguments)))},a.doesNotThrow=function(o,E){Z.apply(this,[!1].concat(t.call(arguments)))},a.ifError=function(o){if(o)throw o};var h=Object.keys||function(o){var E=[];for(var p in o)n.call(o,p)&&E.push(p);return E}},{"util/":11}],9:[function(U,Q,e){typeof Object.create=="function"?Q.exports=function(t,n){t.super_=n,t.prototype=Object.create(n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:Q.exports=function(t,n){t.super_=n;var a=function(){};a.prototype=n.prototype,t.prototype=new a,t.prototype.constructor=t}},{}],10:[function(U,Q,e){Q.exports=function(t){return t&&typeof t=="object"&&typeof t.copy=="function"&&typeof t.fill=="function"&&typeof t.readUInt8=="function"}},{}],11:[function(U,Q,e){(function(B,t){var n=/%[sdj%]/g;e.format=function(W){if(!T(W)){for(var J=[],f=0;f<arguments.length;f++)J.push(L(arguments[f]));return J.join(" ")}for(var f=1,$=arguments,lF=$.length,A=String(W).replace(n,function(H){if(H==="%%")return"%";if(f>=lF)return H;switch(H){case"%s":return String($[f++]);case"%d":return Number($[f++]);case"%j":try{return JSON.stringify($[f++])}catch{return"[Circular]"}default:return H}}),z=$[f];f<lF;z=$[++f])p(z)||!k(z)?A+=" "+z:A+=" "+L(z);return A},e.deprecate=function(W,J){if(D(t.process))return function(){return e.deprecate(W,J).apply(this,arguments)};if(B.noDeprecation===!0)return W;var f=!1;function $(){if(!f){if(B.throwDeprecation)throw new Error(J);B.traceDeprecation?console.trace(J):console.error(J),f=!0}return W.apply(this,arguments)}return $};var a={},i;e.debuglog=function(W){if(D(i)&&(i=B.env.NODE_DEBUG||""),W=W.toUpperCase(),!a[W])if(new RegExp("\\b"+W+"\\b","i").test(i)){var J=B.pid;a[W]=function(){var f=e.format.apply(e,arguments);console.error("%s %d: %s",W,J,f)}}else a[W]=function(){};return a[W]};function L(W,J){var f={seen:[],stylize:R};return arguments.length>=3&&(f.depth=arguments[2]),arguments.length>=4&&(f.colors=arguments[3]),E(J)?f.showHidden=J:J&&e._extend(f,J),D(f.showHidden)&&(f.showHidden=!1),D(f.depth)&&(f.depth=2),D(f.colors)&&(f.colors=!1),D(f.customInspect)&&(f.customInspect=!0),f.colors&&(f.stylize=r),x(f,W,f.depth)}e.inspect=L,L.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},L.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function r(W,J){var f=L.styles[J];return f?"\x1B["+L.colors[f][0]+"m"+W+"\x1B["+L.colors[f][1]+"m":W}function R(W,J){return W}function V(W){var J={};return W.forEach(function(f,$){J[f]=!0}),J}function x(W,J,f){if(W.customInspect&&J&&nF(J.inspect)&&J.inspect!==e.inspect&&!(J.constructor&&J.constructor.prototype===J)){var $=J.inspect(f,W);return T($)||($=x(W,$,f)),$}var lF=u(W,J);if(lF)return lF;var A=Object.keys(J),z=V(A);if(W.showHidden&&(A=Object.getOwnPropertyNames(J)),K(J)&&(A.indexOf("message")>=0||A.indexOf("description")>=0))return c(J);if(A.length===0){if(nF(J)){var H=J.name?": "+J.name:"";return W.stylize("[Function"+H+"]","special")}if(Y(J))return W.stylize(RegExp.prototype.toString.call(J),"regexp");if(g(J))return W.stylize(Date.prototype.toString.call(J),"date");if(K(J))return c(J)}var O="",UF=!1,aF=["{","}"];if(o(J)&&(UF=!0,aF=["[","]"]),nF(J)){var oF=J.name?": "+J.name:"";O=" [Function"+oF+"]"}if(Y(J)&&(O=" "+RegExp.prototype.toString.call(J)),g(J)&&(O=" "+Date.prototype.toUTCString.call(J)),K(J)&&(O=" "+c(J)),A.length===0&&(!UF||J.length==0))return aF[0]+O+aF[1];if(f<0)return Y(J)?W.stylize(RegExp.prototype.toString.call(J),"regexp"):W.stylize("[Object]","special");W.seen.push(J);var uF;return UF?uF=S(W,J,f,z,A):uF=A.map(function(xF){return Z(W,J,f,z,xF,UF)}),W.seen.pop(),h(uF,O,aF)}function u(W,J){if(D(J))return W.stylize("undefined","undefined");if(T(J)){var f="'"+JSON.stringify(J).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return W.stylize(f,"string")}if(X(J))return W.stylize(""+J,"number");if(E(J))return W.stylize(""+J,"boolean");if(p(J))return W.stylize("null","null")}function c(W){return"["+Error.prototype.toString.call(W)+"]"}function S(W,J,f,$,lF){for(var A=[],z=0,H=J.length;z<H;++z)GF(J,String(z))?A.push(Z(W,J,f,$,String(z),!0)):A.push("");return lF.forEach(function(O){O.match(/^\d+$/)||A.push(Z(W,J,f,$,O,!0))}),A}function Z(W,J,f,$,lF,A){var z,H,O;if(O=Object.getOwnPropertyDescriptor(J,lF)||{value:J[lF]},O.get?O.set?H=W.stylize("[Getter/Setter]","special"):H=W.stylize("[Getter]","special"):O.set&&(H=W.stylize("[Setter]","special")),GF($,lF)||(z="["+lF+"]"),H||(W.seen.indexOf(O.value)<0?(p(f)?H=x(W,O.value,null):H=x(W,O.value,f-1),H.indexOf(`
|
|
17
|
+
`)>-1&&(A?H=H.split(`
|
|
18
|
+
`).map(function(UF){return" "+UF}).join(`
|
|
19
|
+
`).substr(2):H=`
|
|
20
|
+
`+H.split(`
|
|
21
|
+
`).map(function(UF){return" "+UF}).join(`
|
|
22
|
+
`))):H=W.stylize("[Circular]","special")),D(z)){if(A&&lF.match(/^\d+$/))return H;z=JSON.stringify(""+lF),z.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(z=z.substr(1,z.length-2),z=W.stylize(z,"name")):(z=z.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),z=W.stylize(z,"string"))}return z+": "+H}function h(W,J,f){var $=W.reduce(function(lF,A){return A.indexOf(`
|
|
23
|
+
`)>=0,lF+A.replace(/\u001b\[\d\d?m/g,"").length+1},0);return $>60?f[0]+(J===""?"":J+`
|
|
24
|
+
`)+" "+W.join(`,
|
|
25
|
+
`)+" "+f[1]:f[0]+J+" "+W.join(", ")+" "+f[1]}function o(W){return Array.isArray(W)}e.isArray=o;function E(W){return typeof W=="boolean"}e.isBoolean=E;function p(W){return W===null}e.isNull=p;function m(W){return W==null}e.isNullOrUndefined=m;function X(W){return typeof W=="number"}e.isNumber=X;function T(W){return typeof W=="string"}e.isString=T;function M(W){return typeof W=="symbol"}e.isSymbol=M;function D(W){return W===void 0}e.isUndefined=D;function Y(W){return k(W)&&w(W)==="[object RegExp]"}e.isRegExp=Y;function k(W){return typeof W=="object"&&W!==null}e.isObject=k;function g(W){return k(W)&&w(W)==="[object Date]"}e.isDate=g;function K(W){return k(W)&&(w(W)==="[object Error]"||W instanceof Error)}e.isError=K;function nF(W){return typeof W=="function"}e.isFunction=nF;function BF(W){return W===null||typeof W=="boolean"||typeof W=="number"||typeof W=="string"||typeof W=="symbol"||typeof W>"u"}e.isPrimitive=BF,e.isBuffer=U("./support/isBuffer");function w(W){return Object.prototype.toString.call(W)}function cF(W){return W<10?"0"+W.toString(10):W.toString(10)}var rF=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function VF(){var W=new Date,J=[cF(W.getHours()),cF(W.getMinutes()),cF(W.getSeconds())].join(":");return[W.getDate(),rF[W.getMonth()],J].join(" ")}e.log=function(){console.log("%s - %s",VF(),e.format.apply(e,arguments))},e.inherits=U("inherits"),e._extend=function(W,J){if(!J||!k(J))return W;for(var f=Object.keys(J),$=f.length;$--;)W[f[$]]=J[f[$]];return W};function GF(W,J){return Object.prototype.hasOwnProperty.call(W,J)}}).call(this,U("_process"),typeof commonjsGlobal<"u"?commonjsGlobal:typeof self<"u"?self:typeof window<"u"?window:{})},{"./support/isBuffer":10,_process:14,inherits:9}],12:[function(U,Q,e){},{}],13:[function(U,Q,e){(function(B){function t(L,r){for(var R=0,V=L.length-1;V>=0;V--){var x=L[V];x==="."?L.splice(V,1):x===".."?(L.splice(V,1),R++):R&&(L.splice(V,1),R--)}if(r)for(;R--;R)L.unshift("..");return L}e.resolve=function(){for(var L="",r=!1,R=arguments.length-1;R>=-1&&!r;R--){var V=R>=0?arguments[R]:B.cwd();if(typeof V!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!V)continue;L=V+"/"+L,r=V.charAt(0)==="/"}return L=t(a(L.split("/"),function(x){return!!x}),!r).join("/"),(r?"/":"")+L||"."},e.normalize=function(L){var r=e.isAbsolute(L),R=i(L,-1)==="/";return L=t(a(L.split("/"),function(V){return!!V}),!r).join("/"),!L&&!r&&(L="."),L&&R&&(L+="/"),(r?"/":"")+L},e.isAbsolute=function(L){return L.charAt(0)==="/"},e.join=function(){var L=Array.prototype.slice.call(arguments,0);return e.normalize(a(L,function(r,R){if(typeof r!="string")throw new TypeError("Arguments to path.join must be strings");return r}).join("/"))},e.relative=function(L,r){L=e.resolve(L).substr(1),r=e.resolve(r).substr(1);function R(h){for(var o=0;o<h.length&&h[o]==="";o++);for(var E=h.length-1;E>=0&&h[E]==="";E--);return o>E?[]:h.slice(o,E-o+1)}for(var V=R(L.split("/")),x=R(r.split("/")),u=Math.min(V.length,x.length),c=u,S=0;S<u;S++)if(V[S]!==x[S]){c=S;break}for(var Z=[],S=c;S<V.length;S++)Z.push("..");return Z=Z.concat(x.slice(c)),Z.join("/")},e.sep="/",e.delimiter=":",e.dirname=function(L){if(typeof L!="string"&&(L=L+""),L.length===0)return".";for(var r=L.charCodeAt(0),R=r===47,V=-1,x=!0,u=L.length-1;u>=1;--u)if(r=L.charCodeAt(u),r===47){if(!x){V=u;break}}else x=!1;return V===-1?R?"/":".":R&&V===1?"/":L.slice(0,V)};function n(L){typeof L!="string"&&(L=L+"");var r=0,R=-1,V=!0,x;for(x=L.length-1;x>=0;--x)if(L.charCodeAt(x)===47){if(!V){r=x+1;break}}else R===-1&&(V=!1,R=x+1);return R===-1?"":L.slice(r,R)}e.basename=function(L,r){var R=n(L);return r&&R.substr(-1*r.length)===r&&(R=R.substr(0,R.length-r.length)),R},e.extname=function(L){typeof L!="string"&&(L=L+"");for(var r=-1,R=0,V=-1,x=!0,u=0,c=L.length-1;c>=0;--c){var S=L.charCodeAt(c);if(S===47){if(!x){R=c+1;break}continue}V===-1&&(x=!1,V=c+1),S===46?r===-1?r=c:u!==1&&(u=1):r!==-1&&(u=-1)}return r===-1||V===-1||u===0||u===1&&r===V-1&&r===R+1?"":L.slice(r,V)};function a(L,r){if(L.filter)return L.filter(r);for(var R=[],V=0;V<L.length;V++)r(L[V],V,L)&&R.push(L[V]);return R}var i="ab".substr(-1)==="b"?function(L,r,R){return L.substr(r,R)}:function(L,r,R){return r<0&&(r=L.length+r),L.substr(r,R)}}).call(this,U("_process"))},{_process:14}],14:[function(U,Q,e){var B=Q.exports={},t,n;function a(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?t=setTimeout:t=a}catch{t=a}try{typeof clearTimeout=="function"?n=clearTimeout:n=i}catch{n=i}})();function L(o){if(t===setTimeout)return setTimeout(o,0);if((t===a||!t)&&setTimeout)return t=setTimeout,setTimeout(o,0);try{return t(o,0)}catch{try{return t.call(null,o,0)}catch{return t.call(this,o,0)}}}function r(o){if(n===clearTimeout)return clearTimeout(o);if((n===i||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(o);try{return n(o)}catch{try{return n.call(null,o)}catch{return n.call(this,o)}}}var R=[],V=!1,x,u=-1;function c(){!V||!x||(V=!1,x.length?R=x.concat(R):u=-1,R.length&&S())}function S(){if(!V){var o=L(c);V=!0;for(var E=R.length;E;){for(x=R,R=[];++u<E;)x&&x[u].run();u=-1,E=R.length}x=null,V=!1,r(o)}}B.nextTick=function(o){var E=new Array(arguments.length-1);if(arguments.length>1)for(var p=1;p<arguments.length;p++)E[p-1]=arguments[p];R.push(new Z(o,E)),R.length===1&&!V&&L(S)};function Z(o,E){this.fun=o,this.array=E}Z.prototype.run=function(){this.fun.apply(null,this.array)},B.title="browser",B.browser=!0,B.env={},B.argv=[],B.version="",B.versions={};function h(){}B.on=h,B.addListener=h,B.once=h,B.off=h,B.removeListener=h,B.removeAllListeners=h,B.emit=h,B.prependListener=h,B.prependOnceListener=h,B.listeners=function(o){return[]},B.binding=function(o){throw new Error("process.binding is not supported")},B.cwd=function(){return"/"},B.chdir=function(o){throw new Error("process.chdir is not supported")},B.umask=function(){return 0}},{}],15:[function(U,Q,e){var B=U("escodegen").generate;Q.exports=function(t,n){n||(n={});var a={},i=function L(r,R){if(r.type==="Literal")return r.value;if(r.type==="UnaryExpression"){var V=L(r.argument);return r.operator==="+"?+V:r.operator==="-"?-V:r.operator==="~"?~V:r.operator==="!"?!V:a}else if(r.type==="ArrayExpression"){for(var x=[],u=0,c=r.elements.length;u<c;u++){var S=L(r.elements[u]);if(S===a)return a;x.push(S)}return x}else if(r.type==="ObjectExpression"){for(var Z={},u=0;u<r.properties.length;u++){var h=r.properties[u],o=h.value===null?h.value:L(h.value);if(o===a)return a;Z[h.key.value||h.key.name]=o}return Z}else if(r.type==="BinaryExpression"||r.type==="LogicalExpression"){var c=L(r.left);if(c===a)return a;var E=L(r.right);if(E===a)return a;var p=r.operator;return p==="=="?c==E:p==="==="?c===E:p==="!="?c!=E:p==="!=="?c!==E:p==="+"?c+E:p==="-"?c-E:p==="*"?c*E:p==="/"?c/E:p==="%"?c%E:p==="<"?c<E:p==="<="?c<=E:p===">"?c>E:p===">="?c>=E:p==="|"?c|E:p==="&"?c&E:p==="^"?c^E:p==="&&"?c&&E:p==="||"?c||E:a}else{if(r.type==="Identifier")return{}.hasOwnProperty.call(n,r.name)?n[r.name]:a;if(r.type==="ThisExpression")return{}.hasOwnProperty.call(n,"this")?n.this:a;if(r.type==="CallExpression"){var m=L(r.callee);if(m===a||typeof m!="function")return a;var X=r.callee.object?L(r.callee.object):a;X===a&&(X=null);for(var T=[],u=0,c=r.arguments.length;u<c;u++){var S=L(r.arguments[u]);if(S===a)return a;T.push(S)}return m.apply(X,T)}else if(r.type==="MemberExpression"){var Z=L(r.object);if(Z===a||typeof Z=="function")return a;if(r.property.type==="Identifier")return Z[r.property.name];var h=L(r.property);return h===a?a:Z[h]}else if(r.type==="ConditionalExpression"){var V=L(r.test);return V===a?a:L(V?r.consequent:r.alternate)}else if(r.type==="ExpressionStatement"){var V=L(r.expression);return V===a?a:V}else{if(r.type==="ReturnStatement")return L(r.argument);if(r.type==="FunctionExpression"){var M=r.body.body,D={};Object.keys(n).forEach(function(rF){D[rF]=n[rF]});for(var u=0;u<r.params.length;u++){var Y=r.params[u];if(Y.type=="Identifier")n[Y.name]=null;else return a}for(var u in M)if(L(M[u])===a)return a;n=D;var k=Object.keys(n),g=k.map(function(rF){return n[rF]});return Function(k.join(", "),"return "+B(r)).apply(null,g)}else if(r.type==="TemplateLiteral"){for(var K="",u=0;u<r.expressions.length;u++)K+=L(r.quasis[u]),K+=L(r.expressions[u]);return K+=L(r.quasis[u]),K}else if(r.type==="TaggedTemplateExpression"){var nF=L(r.tag),BF=r.quasi,w=BF.quasis.map(L),cF=BF.expressions.map(L);return nF.apply(null,[w].concat(cF))}else return r.type==="TemplateElement"?r.value.cooked:a}}}(t);return i===a?void 0:i}},{escodegen:12}],jsonpath:[function(U,Q,e){Q.exports=U("./lib/index")},{"./lib/index":5}]},{},["jsonpath"])("jsonpath")})}(jsonpath$1)),jsonpath$1.exports}var jsonpathExports=requireJsonpath();const jsonpath=getDefaultExportFromCjs(jsonpathExports);function jsonToItems(s,F){let U=[];return F.forEach(e=>{let B=[];try{B=jsonpath.paths(s,e.json_path),U.push({field_id:e.field_id,json_paths:B,json_paths_length:B.length})}catch(t){console.log(t)}}),U.sort((e,B)=>B.json_paths_length-e.json_paths_length),getPathForItems(U).map(e=>({fields:e.fields.map(B=>({field_id:B.field_id,field_value:jsonpath.value(s,B.json_path)}))}))}function bestMatch(s,F){let U=[];return F.forEach(Q=>{U.push({path_to_compare:Q,match_coefficient:0})}),s.forEach((Q,e)=>{for(var B=0;B<U.length;B++)U[B].path_to_compare[e]==Q&&(U[B].match_coefficient+=1/(e+1))}),U.sort((Q,e)=>e.match_coefficient-Q.match_coefficient),U[0].path_to_compare}function getPathForItems(s){let F=[];return s.length&&s[0].json_paths.forEach(U=>{let Q={fields:[]};s.forEach(e=>{Q.fields.push({field_id:e.field_id,json_path:bestMatch(U,e.json_paths)})}),F.push(Q)}),F}function populateWithItemRef(s,F,U,Q,e,B){let t=[];const n=function(a,i){let L=getFieldById(i,e);L&&(L.field_value=B+"."+a.item_id,t.push(i))};return U.forEach(a=>{s.forEach(i=>{compareTwoItemsByFieldId(i,a,F,Q,n)})}),t}function mergeItems(s,F,U){let Q=JSON.parse(JSON.stringify(s)),e=JSON.parse(JSON.stringify(F)),B=[];const t=function(L,r){B.push(mergeTwoItems(L,r))},n=function(L){B.push(L)},a=function(L){B.push(L)};return U?compareItemsByFieldId(Q,e,U,t,n,a):compareItemsByItemId(Q,e,t,n,a,function(L){B.push(L)}),B}function compareItems(s,F,U){const Q=JSON.parse(JSON.stringify(s)),e=JSON.parse(JSON.stringify(F));let B={is_items_diff:!1,new_src_items:[],diff_src_items:[],same_items:[],trash_src_items:[]};const t=function(L){B.diff_src_items.push(L)},n=function(L){B.same_items.push(L)},a=function(L){B.new_src_items.push(L)},i=function(L){B.trash_src_items.push(L)};return U&&compareItemsByFieldId(Q,e,U,t,n,a),U||compareItemsByItemId(Q,e,t,n,a,null,i),B.is_items_diff=B.new_src_items.length>0||B.diff_src_items.length>0,B}function mergeTwoItems(s,F){return s.fields.forEach(U=>{let Q=getFieldById(F,U.field_id);Q?(Q.field_value=U.field_value,U.history&&Q.history&&(Q.history=U.history.concat(Q.history))):F.fields.push(U)}),F}function compareItemsByFieldId(s,F,U,Q,e,B){s.forEach(t=>{let n=!0,a=getFieldById(t,U).field_value;F.forEach(i=>{let L=getFieldById(i,U).field_value;a==L&&(n=!1,compareTwoItems(t,i,Q,e))}),n&&B(t)})}function compareItemsByItemId(s,F,U,Q,e,B,t){let n=new ItemsMapper(F);if(s.forEach(a=>{let i=n.pullItemIndex(a.item_id);i!=null?compareTwoItems(a,F[i],U,Q,t):(a.trash&&t(a),a.trash||e(a))}),B)for(const[a,i]of Object.entries(n.itemsMap))B(F[i])}function compareTwoItems(s,F,U,Q,e){let B=!0;for(let t=0;t<s.fields.length;t++){let n=getFieldById(F,s.fields[t].field_id);n?n.field_value!=s.fields[t].field_value&&(B=B&&!1):B=B&&!1}B&&(s.trash&&e(s,F),s.trash||Q(s,F)),B||(s.trash&&e(s,F),s.trash||U(s,F))}function compareTwoItemsByFieldId(s,F,U,Q,e){let B=getFieldById(s,U).field_value,t=getFieldById(F,Q).field_value;B==t&&e(s,F)}function getFieldById(s,F){let U=null;for(let Q=0;Q<s.fields.length;Q++)F==s.fields[Q].field_id&&(U=s.fields[Q]);return U}class ItemsMapper{constructor(F){this._itemsMap={},F.forEach((U,Q)=>{this._itemsMap[U.item_id]=Q})}pullItemIndex(F){let U=this._itemsMap[F];return delete this._itemsMap[F],U}getItemIndex(F){return this._itemsMap[F]}get itemsMap(){return this._itemsMap}}function group(s,F){let U=[],Q;s?Q=s.split(","):U=F;let e=new Set;s&&F.forEach(t=>{let n="";Q.forEach((a,i)=>{const L=t.fields.find(r=>r.field_id==a);L&&(n+=L.field_value),Q.length-1==i&&B(n)&&U.push(t)})});function B(t){const n=!e.has(t);return n&&e.add(t),n}return U}function populateItems(s,F,U){var Q=JSON.parse(JSON.stringify(s));return U?populateItemsAndKeepOtherValues(Q,F):populateItemsAndEraseOtherValues(Q,F)}function populateItemsAndKeepOtherValues(s,F){return s.forEach(U=>{F.forEach(Q=>{let e=U.fields.find(B=>B.element_id==Q.element_id);e?e.field_value=Q.field_value:(Q.field_id=Q.element_id,U.fields.push(Q))})}),s}function populateItemsAndEraseOtherValues(s,F){return s.forEach(U=>{U.fields=[].concat(F)}),s}var add$1={exports:{}},interopRequireDefault={exports:{}},hasRequiredInteropRequireDefault;function requireInteropRequireDefault(){return hasRequiredInteropRequireDefault||(hasRequiredInteropRequireDefault=1,function(s){function F(U){return U&&U.__esModule?U:{default:U}}s.exports=F,s.exports.__esModule=!0,s.exports.default=s.exports}(interopRequireDefault)),interopRequireDefault.exports}var _typeof={exports:{}},hasRequired_typeof;function require_typeof(){return hasRequired_typeof||(hasRequired_typeof=1,function(s){function F(U){"@babel/helpers - typeof";return s.exports=F=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(Q){return typeof Q}:function(Q){return Q&&typeof Symbol=="function"&&Q.constructor===Symbol&&Q!==Symbol.prototype?"symbol":typeof Q},s.exports.__esModule=!0,s.exports.default=s.exports,F(U)}s.exports=F,s.exports.__esModule=!0,s.exports.default=s.exports}(_typeof)),_typeof.exports}var addDays={exports:{}},toInteger={exports:{}},hasRequiredToInteger;function requireToInteger(){return hasRequiredToInteger||(hasRequiredToInteger=1,function(s,F){Object.defineProperty(F,"__esModule",{value:!0}),F.default=U;function U(Q){if(Q===null||Q===!0||Q===!1)return NaN;var e=Number(Q);return isNaN(e)?e:e<0?Math.ceil(e):Math.floor(e)}s.exports=F.default}(toInteger,toInteger.exports)),toInteger.exports}var toDate={exports:{}},requiredArgs={exports:{}},hasRequiredRequiredArgs;function requireRequiredArgs(){return hasRequiredRequiredArgs||(hasRequiredRequiredArgs=1,function(s,F){Object.defineProperty(F,"__esModule",{value:!0}),F.default=U;function U(Q,e){if(e.length<Q)throw new TypeError(Q+" argument"+(Q>1?"s":"")+" required, but only "+e.length+" present")}s.exports=F.default}(requiredArgs,requiredArgs.exports)),requiredArgs.exports}var hasRequiredToDate;function requireToDate(){return hasRequiredToDate||(hasRequiredToDate=1,function(s,F){var U=requireInteropRequireDefault().default;Object.defineProperty(F,"__esModule",{value:!0}),F.default=B;var Q=U(require_typeof()),e=U(requireRequiredArgs());function B(t){(0,e.default)(1,arguments);var n=Object.prototype.toString.call(t);return t instanceof Date||(0,Q.default)(t)==="object"&&n==="[object Date]"?new Date(t.getTime()):typeof t=="number"||n==="[object Number]"?new Date(t):((typeof t=="string"||n==="[object String]")&&typeof console<"u"&&(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(new Error().stack)),new Date(NaN))}s.exports=F.default}(toDate,toDate.exports)),toDate.exports}var hasRequiredAddDays;function requireAddDays(){return hasRequiredAddDays||(hasRequiredAddDays=1,function(s,F){var U=requireInteropRequireDefault().default;Object.defineProperty(F,"__esModule",{value:!0}),F.default=t;var Q=U(requireToInteger()),e=U(requireToDate()),B=U(requireRequiredArgs());function t(n,a){(0,B.default)(2,arguments);var i=(0,e.default)(n),L=(0,Q.default)(a);return isNaN(L)?new Date(NaN):(L&&i.setDate(i.getDate()+L),i)}s.exports=F.default}(addDays,addDays.exports)),addDays.exports}var addMonths={exports:{}},hasRequiredAddMonths;function requireAddMonths(){return hasRequiredAddMonths||(hasRequiredAddMonths=1,function(s,F){var U=requireInteropRequireDefault().default;Object.defineProperty(F,"__esModule",{value:!0}),F.default=t;var Q=U(requireToInteger()),e=U(requireToDate()),B=U(requireRequiredArgs());function t(n,a){(0,B.default)(2,arguments);var i=(0,e.default)(n),L=(0,Q.default)(a);if(isNaN(L))return new Date(NaN);if(!L)return i;var r=i.getDate(),R=new Date(i.getTime());R.setMonth(i.getMonth()+L+1,0);var V=R.getDate();return r>=V?R:(i.setFullYear(R.getFullYear(),R.getMonth(),r),i)}s.exports=F.default}(addMonths,addMonths.exports)),addMonths.exports}var hasRequiredAdd;function requireAdd(){return hasRequiredAdd||(hasRequiredAdd=1,function(s,F){var U=requireInteropRequireDefault().default;Object.defineProperty(F,"__esModule",{value:!0}),F.default=i;var Q=U(require_typeof()),e=U(requireAddDays()),B=U(requireAddMonths()),t=U(requireToDate()),n=U(requireRequiredArgs()),a=U(requireToInteger());function i(L,r){if((0,n.default)(2,arguments),!r||(0,Q.default)(r)!=="object")return new Date(NaN);var R=r.years?(0,a.default)(r.years):0,V=r.months?(0,a.default)(r.months):0,x=r.weeks?(0,a.default)(r.weeks):0,u=r.days?(0,a.default)(r.days):0,c=r.hours?(0,a.default)(r.hours):0,S=r.minutes?(0,a.default)(r.minutes):0,Z=r.seconds?(0,a.default)(r.seconds):0,h=(0,t.default)(L),o=V||R?(0,B.default)(h,V+R*12):h,E=u||x?(0,e.default)(o,u+x*7):o,p=S+c*60,m=Z+p*60,X=m*1e3,T=new Date(E.getTime()+X);return T}s.exports=F.default}(add$1,add$1.exports)),add$1.exports}var addExports=requireAdd();const add=getDefaultExportFromCjs(addExports);var setDay$1={exports:{}},defaultOptions={},hasRequiredDefaultOptions;function requireDefaultOptions(){if(hasRequiredDefaultOptions)return defaultOptions;hasRequiredDefaultOptions=1,Object.defineProperty(defaultOptions,"__esModule",{value:!0}),defaultOptions.getDefaultOptions=F,defaultOptions.setDefaultOptions=U;var s={};function F(){return s}function U(Q){s=Q}return defaultOptions}var hasRequiredSetDay;function requireSetDay(){return hasRequiredSetDay||(hasRequiredSetDay=1,function(s,F){var U=requireInteropRequireDefault().default;Object.defineProperty(F,"__esModule",{value:!0}),F.default=a;var Q=U(requireAddDays()),e=U(requireToDate()),B=U(requireToInteger()),t=U(requireRequiredArgs()),n=requireDefaultOptions();function a(i,L,r){var R,V,x,u,c,S,Z,h;(0,t.default)(2,arguments);var o=(0,n.getDefaultOptions)(),E=(0,B.default)((R=(V=(x=(u=r==null?void 0:r.weekStartsOn)!==null&&u!==void 0?u:r==null||(c=r.locale)===null||c===void 0||(S=c.options)===null||S===void 0?void 0:S.weekStartsOn)!==null&&x!==void 0?x:o.weekStartsOn)!==null&&V!==void 0?V:(Z=o.locale)===null||Z===void 0||(h=Z.options)===null||h===void 0?void 0:h.weekStartsOn)!==null&&R!==void 0?R:0);if(!(E>=0&&E<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var p=(0,e.default)(i),m=(0,B.default)(L),X=p.getDay(),T=m%7,M=(T+7)%7,D=7-E,Y=m<0||m>6?m-(X+D)%7:(M+D)%7-(X+D)%7;return(0,Q.default)(p,Y)}s.exports=F.default}(setDay$1,setDay$1.exports)),setDay$1.exports}var setDayExports=requireSetDay();const setDay=getDefaultExportFromCjs(setDayExports);var isSameWeek$1={exports:{}},startOfWeek={exports:{}},hasRequiredStartOfWeek;function requireStartOfWeek(){return hasRequiredStartOfWeek||(hasRequiredStartOfWeek=1,function(s,F){var U=requireInteropRequireDefault().default;Object.defineProperty(F,"__esModule",{value:!0}),F.default=n;var Q=U(requireToDate()),e=U(requireToInteger()),B=U(requireRequiredArgs()),t=requireDefaultOptions();function n(a,i){var L,r,R,V,x,u,c,S;(0,B.default)(1,arguments);var Z=(0,t.getDefaultOptions)(),h=(0,e.default)((L=(r=(R=(V=i==null?void 0:i.weekStartsOn)!==null&&V!==void 0?V:i==null||(x=i.locale)===null||x===void 0||(u=x.options)===null||u===void 0?void 0:u.weekStartsOn)!==null&&R!==void 0?R:Z.weekStartsOn)!==null&&r!==void 0?r:(c=Z.locale)===null||c===void 0||(S=c.options)===null||S===void 0?void 0:S.weekStartsOn)!==null&&L!==void 0?L:0);if(!(h>=0&&h<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var o=(0,Q.default)(a),E=o.getDay(),p=(E<h?7:0)+E-h;return o.setDate(o.getDate()-p),o.setHours(0,0,0,0),o}s.exports=F.default}(startOfWeek,startOfWeek.exports)),startOfWeek.exports}var hasRequiredIsSameWeek;function requireIsSameWeek(){return hasRequiredIsSameWeek||(hasRequiredIsSameWeek=1,function(s,F){var U=requireInteropRequireDefault().default;Object.defineProperty(F,"__esModule",{value:!0}),F.default=B;var Q=U(requireStartOfWeek()),e=U(requireRequiredArgs());function B(t,n,a){(0,e.default)(2,arguments);var i=(0,Q.default)(t,a),L=(0,Q.default)(n,a);return i.getTime()===L.getTime()}s.exports=F.default}(isSameWeek$1,isSameWeek$1.exports)),isSameWeek$1.exports}var isSameWeekExports=requireIsSameWeek();const isSameWeek=getDefaultExportFromCjs(isSameWeekExports);function populateWithDate(s,F){return s.forEach(U=>{F.forEach(Q=>{let e=U.fields.find(B=>B.element_id==Q.element_id);e?Q.data_range?Q.date_type.includes("calendar")?e.field_value=`${getStartDate(Q.date_type)}:${getDate(Q.date_type)}`:e.field_value=`${getStartDate(Q.date_type)}:${getDate(Q.date_type)}`:e.field_value=getDate(Q.date_type):U.fields.push({field_id:Q.element_id,element_id:Q.element_id,field_value:getDate(Q.date_type)})})}),s}function getStartDate(s){let F=new Date;function U(e){var B=e.getDay();let t;s.includes("week_current,current")&&(t=0),s.includes("week_next,future")&&(t=7),s.includes("week_past,past")&&(t=-7);let n=e.getDate()-B+t+(B==0?-6:1);return new Date(e.setDate(n))}function Q(e){let B,t,n=Math.floor(e.getMonth()/3),a=e.getFullYear();return s.includes("quarter_current,current")&&(B=0,t=0),s.includes("quarter_next,future")&&(B=3,t=0),s.includes("quarter_past,past")&&(B=-3,t=0),new Date(a,n*3+B,1+t)}switch(s){case"week_current,current":return U(new Date).getTime();case"month_current,current":return new Date(F.getFullYear(),F.getMonth(),1).getTime();case"quarter_current,current":return Q(new Date).getTime();case"year_current,current":return add(new Date(F.getFullYear(),0,1),{years:0}).getTime();case"week_next,future":return U(new Date).getTime();case"month_next,future":return new Date(F.getFullYear(),F.getMonth()+1,1).getTime();case"quarter_next,future":return Q(new Date).getTime();case"year_next,future":return add(F,{days:0}).getTime();case"week_past,past":return U(new Date).getTime();case"month_past,past":return new Date(F.getFullYear(),F.getMonth()-1,1).getTime();case"quarter_past,past":return Q(new Date).getTime();case"year_past,past":return add(F,{years:-1}).getTime();case"year_past,past,calendar":return add(new Date(F.getFullYear(),0,1),{years:-1}).getTime();case"year_future,future,calendar":return add(new Date(F.getFullYear()+1,0,1),{years:0}).getTime();case"today_current,current":return add(F,{days:0}).getTime();case"tomorrow,future":return add(F,{days:1}).getTime();case"7_days_future,future":return add(F,{days:0}).getTime();case"10_days_future,future":return add(F,{days:0}).getTime();case"14_days_future,future":return add(F,{days:0}).getTime();case"30_days_future,future":return add(F,{days:0}).getTime();case"yesterday,past":return add(F,{days:-1}).getTime();case"7_days_past,past":return add(F,{days:-7}).getTime();case"10_days_past,past":return add(F,{days:-10}).getTime();case"14_days_past,past":return add(F,{days:-14}).getTime();case"30_days_past,past":return add(F,{days:-30}).getTime()}}function getDate(s){var F=new Date;function U(n){n=new Date(n);var a=n.getDay(),i=n.getDate()-a+6+(a==0?6:1);return new Date(n.setDate(i))}function Q(n){n=new Date(n);var a=n.getDay(),i=n.getDate()-a+13+(a==0?-6:1);return new Date(n.setDate(i))}function e(n){n=new Date(n);var a=n.getDay(),i=n.getDate()-a-1+(a==0?-6:1);return new Date(n.setDate(i))}let B=Math.floor(F.getMonth()/3),t=F.getFullYear();switch(s){case"next_day":return add(F,{days:1}).getTime();case"two_days_after":return add(F,{days:2}).getTime();case"three_days_after":return add(F,{days:3}).getTime();case"four_days_after":return add(F,{days:4}).getTime();case"next_week":return add(F,{weeks:1}).getTime();case"two_weeks_after":return add(F,{weeks:2}).getTime();case"three_weeks_after":return add(F,{weeks:3}).getTime();case"this_sunday":return setDay(F,0,{weekStartsOn:1});case"this_monday":return setDay(F,1,{weekStartsOn:1});case"this_tuesday":return setDay(F,2,{weekStartsOn:1});case"this_wednesday":return setDay(F,3,{weekStartsOn:1});case"this_thursday":return setDay(F,4,{weekStartsOn:1});case"this_friday":return setDay(F,5,{weekStartsOn:1});case"this_saturday":return setDay(F,6,{weekStartsOn:1});case"today_current,current":return add(F,{days:0}).getTime();case"tomorrow,future":return add(F,{days:1}).getTime();case"7_days_future,future":return add(F,{days:7}).getTime();case"10_days_future,future":return add(F,{days:10}).getTime();case"14_days_future,future":return add(F,{days:14}).getTime();case"30_days_future,future":return add(F,{days:30}).getTime();case"yesterday,past":return add(F,{days:-1}).getTime();case"7_days_past,past":return add(F,{days:0}).getTime();case"10_days_past,past":return add(F,{days:0}).getTime();case"14_days_past,past":return add(F,{days:0}).getTime();case"30_days_past,past":return add(F,{days:0}).getTime();case"year_future,future,calendar":return add(new Date(F.getFullYear()+1,0,0),{years:1}).getTime();case"year_past,past,calendar":return add(new Date(F.getFullYear(),0,0),{years:0}).getTime();case"week_current,current":return U(new Date).getTime();case"month_current,current":return new Date(F.getFullYear(),F.getMonth()+1,0).getTime();case"quarter_current,current":return new Date(t,(B+1)*3,0).getTime();case"year_current,current":return add(new Date(F.getFullYear()+1,0,0),{years:0}).getTime();case"week_next,future":return Q(new Date).getTime();case"month_next,future":return new Date(F.getFullYear(),F.getMonth()+2,0).getTime();case"quarter_next,future":return new Date(t,(B+1)*3+3,0).getTime();case"year_next,future":return add(F,{years:1}).getTime();case"week_past,past":return e(new Date).getTime();case"month_past,past":return new Date(F.getFullYear(),F.getMonth(),0,0).getTime();case"quarter_past,past":return new Date(t,(B+1)*3-3,0).getTime();case"year_past,past":return add(F,{days:0}).getTime();case"now":default:return F.getTime()}}function checkRecurringDate(s,F){s=new Date(s);let U=new Date;switch(F){case"day":return s.getDate()+"."+s.getMonth()==U.getDate()+"."+U.getMonth();case"week":let Q=new Date().getFullYear(),e=new Date(Q,s.getMonth(),s.getDate());return isSameWeek(e,U);case"month":return s.getMonth()===U.getMonth();default:return!0}}function mergeObjects(s,F,U){return deepmerge(s,F,U)}function isMergeableObject(s){var F=s&&typeof s=="object";return F&&Object.prototype.toString.call(s)!=="[object RegExp]"&&Object.prototype.toString.call(s)!=="[object Date]"}function emptyTarget(s){return Array.isArray(s)?[]:{}}function cloneIfNecessary(s,F){var U=F&&F.clone===!0;return U&&isMergeableObject(s)?deepmerge(emptyTarget(s),s,F):s}function defaultArrayMerge(s,F,U){var Q=s.slice();return F.forEach(function(e,B){typeof Q[B]>"u"?Q[B]=cloneIfNecessary(e,U):isMergeableObject(e)?Q[B]=deepmerge(s[B],e,U):s.indexOf(e)===-1&&Q.push(cloneIfNecessary(e,U))}),Q}function mergeObject(s,F,U){var Q={};return isMergeableObject(s)&&Object.keys(s).forEach(function(e){Q[e]=cloneIfNecessary(s[e],U)}),Object.keys(F).forEach(function(e){!isMergeableObject(F[e])||!s[e]?Q[e]=cloneIfNecessary(F[e],U):Q[e]=deepmerge(s[e],F[e],U)}),Q}function deepmerge(s,F,U){s=s!==void 0?s:{},F=F!==void 0?F:{};var Q=Array.isArray(F),e=U||{arrayMerge:defaultArrayMerge},B=e.arrayMerge||defaultArrayMerge;return Q?Array.isArray(s)?B(s,F,U):cloneIfNecessary(F,U):mergeObject(s,F,U)}deepmerge.all=function(F,U){if(!Array.isArray(F)||F.length<2)throw new Error("first argument should be an array with at least two elements");return F.reduce(function(Q,e){return deepmerge(Q,e,U)})};function mergeChunks$1(s){const F={};return s.forEach(U=>{U.items_list.forEach(Q=>{const e=F[Q.item_id];return e?(e.trash=Q.trash,Q.fields.forEach(B=>{let t=!0;e.fields=e.fields.map(n=>Number(n.field_id)===Number(B.field_id)?(t=!1,n.field_value!=B.field_value?{...B,history:B.history.concat(n.history)}:n):n),t&&e.fields.push(B)})):F[Q.item_id]=Q})}),Object.values(F)}globalThis.onmessage=function(s){const F=mergeChunks$1(s.data);self.postMessage(F)};function mergeChunks(s){return mergeChunks$1(s)}function makeNestedList(s,F,U){let Q=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"children",e=arguments.length>4&&arguments[4]!==void 0?arguments[4]:null,B={},t=[];s.forEach(i=>{B[i[F]]={...i,[Q]:[]}}),s.forEach(i=>{const L=i[U];L&&B[L]?B[L][Q].push(B[i[F]]):t.push(B[i[F]])});const n=i=>{i.forEach(L=>{L[Q].length>0&&n(L[Q])}),e&&i.sort((L,r)=>{const R=L[e]??1/0,V=r[e]??1/0;return R-V})};n(t);const a=i=>{i.forEach(L=>{L[Q].length===0?delete L[Q]:a(L[Q])})};return a(t),t}class FieldsOperator{constructor(F){this.gudhub=F}mergeFieldLists(F,U){let Q=JSON.parse(JSON.stringify(F)),e=JSON.parse(JSON.stringify(U)),B=e.map(t=>t.field_id);return e.length?e.reduce((t,n)=>{let a=null;if(t.find((L,r)=>n.field_id==L.field_id?(a=r,!0):!1))t[a]=this.gudhub.util.mergeObjects(t[a],n);else{let L=n.data_model&&n.data_model.interpretation?n.data_model.interpretation.find(r=>r.src=="table")||{settings:{show_field:1}}:{settings:{show_field:1}};if(L.settings.show_field){let r=this.gudhub.util.mergeObjects({show:1},L),R=this.gudhub.util.mergeObjects(r,n);t.push(R)}}return t},Q).filter(function(t){return t.show&&B.indexOf(t.field_id)!=-1}):[]}createFieldsListToView(F,U){const Q=this;return new Promise(async e=>{let B=await this.gudhub.getFieldModels(F);if(U.length!==0){let n=[];U.forEach((a,i)=>{let L=B.find(r=>a.field_id==r.field_id);L&&(L.data_model.interpretation.find(r=>r.src=="table"),n.push({field_id:L.field_id,show:a.show,width:a.width?a.width:"150px"})),i+1==U.length&&t(n)})}else t(U);function t(n){let a=0;B.forEach((i,L)=>{n.find(R=>i.field_id==R.field_id)?(a==B.length-1&&e(n),a++):Q.gudhub.ghconstructor.getInstance(i.data_type).then(R=>{if(R){let x=R.getTemplate().model.data_model.interpretation.find(u=>u.src=="table");x||(x={settings:{show_field:1}}),n.push({field_id:i.field_id,show:x.settings.show_field}),a==B.length-1&&e(n)}a++},function(V){a++})})}})}createFieldsListToViewWithDataType(F,U){return new Promise(async Q=>{let e=[],B=await this.gudhub.getFieldModels(F),t=B.map(a=>+a.field_id);const n=[];e=B.reduce((a,i)=>(a.find((r,R)=>i.field_id==r.field_id)||(a.push({field_id:i.field_id,data_type:i.data_type}),n.push(new Promise(async r=>{const x=(await this.gudhub.ghconstructor.getInstance(i.data_type)).getTemplate().model.data_model.interpretation.find(u=>u.src=="table")||{settings:{show_field:1}};a.find(u=>u.field_id==i.field_id).show=x.settings.show_field,r(!0)}))),a),U),Promise.all(n).then(()=>{e=e.filter(a=>t.indexOf(a.field_id)!=-1),Q(e)})})}}class ItemsSelection{constructor(F){this.gudhub=F,this.selectedItems={}}async selectItems(F,U){if(!this.selectedItems.hasOwnProperty(F)){this.selectedItems[F]={items:[],app:[]};let B=await this.gudhub.getApp(F);this.selectedItems[F].app=B}let Q=this.selectedItems[F],e=Q.items.map(B=>B.item_id);U.forEach(B=>{e.indexOf(B.item_id)!=-1?Q.items.splice(e.indexOf(B.item_id),1):Q.items[Q.items.length]=B})}getSelectedItems(F){return this.selectedItems[F]?this.selectedItems[F]:{items:[],app:[]}}clearSelectedItems(F){this.selectedItems[F]&&(this.selectedItems[F].items=[])}isItemSelected(F,U){let Q=this.getSelectedItems(F);return Q!==null?(Q=Q.items.map(e=>e.item_id),Q.indexOf(U)!=-1):!1}}function compare_items_lists_Worker(){return`function createList(items) {
|
|
26
|
+
return items.reduce(
|
|
27
|
+
(acc, item) => {
|
|
28
|
+
acc.list[item.item_id] = item;
|
|
29
|
+
acc.ids.push(item.item_id);
|
|
30
|
+
return acc;
|
|
31
|
+
},
|
|
32
|
+
{ ids: [], list: {} }
|
|
33
|
+
);
|
|
34
|
+
};
|
|
35
|
+
function compareItemsLists(oldItems, newItems) {
|
|
36
|
+
const { ids: oldIds, list: oldList } = createList(oldItems);
|
|
37
|
+
const { ids: newIds, list: newList } = createList(newItems);
|
|
38
|
+
|
|
39
|
+
const deletedItemsIds = oldIds.filter((id) => !newIds.includes(id));
|
|
40
|
+
const recentItemsIds = oldIds.filter((id) => !deletedItemsIds.includes(id));
|
|
41
|
+
const newItemsIds = newIds.filter((id) => !oldIds.includes(id));
|
|
42
|
+
|
|
43
|
+
const diff_fields_items = {};
|
|
44
|
+
const diff_fields_items_Ids = [];
|
|
45
|
+
|
|
46
|
+
recentItemsIds.forEach((id) => {
|
|
47
|
+
const newItem = newList[id];
|
|
48
|
+
const oldItem = oldList[id];
|
|
49
|
+
|
|
50
|
+
oldItem.fields.forEach((field1) => {
|
|
51
|
+
const sameField = newItem.fields.find(
|
|
52
|
+
(field2) => Number(field2.field_id) === Number(field1.field_id)
|
|
53
|
+
);
|
|
54
|
+
|
|
55
|
+
if (!sameField) {
|
|
56
|
+
if (!diff_fields_items[newItem.item_id]) {
|
|
57
|
+
diff_fields_items[newItem.item_id] = [];
|
|
58
|
+
diff_fields_items_Ids.push(newItem.item_id);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return diff_fields_items[newItem.item_id].push(field1);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if (field1.field_value != sameField.field_value) {
|
|
65
|
+
if (!diff_fields_items[newItem.item_id]) {
|
|
66
|
+
diff_fields_items[newItem.item_id] = [];
|
|
67
|
+
diff_fields_items_Ids.push(newItem.item_id);
|
|
68
|
+
}
|
|
69
|
+
return diff_fields_items[newItem.item_id].push(field1);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
return {
|
|
75
|
+
newItems: newItemsIds.reduce((acc, id) => {
|
|
76
|
+
acc.push(newList[id]);
|
|
77
|
+
return acc;
|
|
78
|
+
}, []),
|
|
79
|
+
deletedItems: deletedItemsIds.reduce((acc, id) => {
|
|
80
|
+
acc.push(oldList[id]);
|
|
81
|
+
return acc;
|
|
82
|
+
}, []),
|
|
83
|
+
diff_fields_items_Ids,
|
|
84
|
+
diff_fields_items,
|
|
85
|
+
diff_items: diff_fields_items_Ids.reduce((acc, id) => {
|
|
86
|
+
acc.push(oldList[id]);
|
|
87
|
+
return acc;
|
|
88
|
+
}, []),
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
self.addEventListener("message", (event) => {
|
|
93
|
+
const { items_list1, items_list2 } = event.data;
|
|
94
|
+
|
|
95
|
+
const diff = compareItemsLists(items_list1, items_list2);
|
|
96
|
+
self.postMessage({ diff });
|
|
97
|
+
});`}function compiler(s,F,U,Q,e){async function B(R,V,x){let u=null;if(R.type==="array"&&(Number(R.is_static)?u=new Array(await a(R.childs,V,x)):u=await t(R,V,x)),R.type==="object"&&(Number(R.current_item)?u=await n(R,V):u=await a(R.childs,V,x)),R.type==="property"&&(u=await i(R,V,x)),typeof R=="object"&&typeof R.type>"u"){const c={};for(const S in R)if(R.hasOwnProperty(S)){const Z=R[S],h=await B(Z,V,x);c[S]=h[Z.property_name]}return c}return{[R.property_name]:u}}async function t(R,V,x){const u=await U.gudhub.getApp(Number(R.app_id));let c=await r(R.filter,u.items_list,x,V);if(R.isSortable&&R.field_id_to_sort&&R.field_id_to_sort!==""){let Z=c.flatMap(o=>{let E=o.fields.find(p=>p.field_id==R.field_id_to_sort);return!E||E.field_value==""?[]:o}),h=c.filter(o=>{if(!Z.includes(o))return o});Z=Z.sort((o,E)=>R.sortType=="desc"?E.fields.find(p=>p.field_id==R.field_id_to_sort).field_value-o.fields.find(p=>p.field_id==R.field_id_to_sort).field_value:o.fields.find(p=>p.field_id==R.field_id_to_sort).field_value-E.fields.find(p=>p.field_id==R.field_id_to_sort).field_value),c=[...Z,...h]}if(R.offset){let Z;R.use_variables_for_limit_and_offset&&Q?Z=Q[R.offset]:Z=/^[0-9]+$/.test(R.offset)?R.offset:0,c=c.slice(Z)}if(R.limit){let Z;R.use_variables_for_limit_and_offset&&Q?Z=Q[R.limit]:Z=/^[0-9]+$/.test(R.limit)||0,Z!==0&&(c=c.slice(0,Z))}const S=c.map(async Z=>a(R.childs,Z,u.app_id));return Promise.all(S)}async function n(R,V){const x=await U.gudhub.getApp(R.app_id),u=x.items_list||[];return a(R.childs,V||u[0],x.app_id)}async function a(R,V,x){const u=await R.map(async S=>B(S,V,x));return(await Promise.all(u)).reduce((S,Z)=>({...S,...Z}),{})}async function i(R,V,x){switch(R.property_type){case"static":return R.static_field_value;case"variable":switch(R.variable_type){case"app_id":return x;case"current_item":default:return`${x}.${V.item_id}`}case"field_id":return R.field_id;case"function":return typeof R.function=="function"?R.function(V,x,U.gudhub,...R.args):await new Function("item, appId, gudhub","return (async "+R.function+")(item, appId, gudhub)")(V,x,U.gudhub);case"field_value":default:return!R.field_id&&R.name_space&&(R.field_id=await U.gudhub.getFieldIdByNameSpace(x,R.name_space)),Number(R.interpretation)?await U.gudhub.getInterpretationById(Number(x),Number(V.item_id),Number(R.field_id),"value"):await U.gudhub.getFieldValue(Number(x),Number(V.item_id),Number(R.field_id))}}async function L(R,V,x,u,c){const S=await U.gudhub.prefilter(JSON.parse(JSON.stringify(R)),{element_app_id:V,app_id:x,item_id:u,...Q});return U.gudhub.filter(c,[...S,...R])}async function r(){let R=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],V=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],x=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"",u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return R.length?L(R,x,x,u.item_id,V):[...V]}return B(s,F,e)}class AppsTemplateService{constructor(F){this.gudhub=F,this.appsConnectingMap={apps:[],fields:[],items:[],views:[]}}createAppsFromTemplate(F,U,Q,e){const B=this;return new Promise(t=>{const a=100/(F.apps.length*6);let i=0;B.createApps(F,L=>{i+=1,Q&&Q.call(this,{percent:i*a,status:L})},e).then(L=>{B.createItems(L,U,r=>{typeof r=="string"?(i+=1,Q&&Q.call(this,{percent:i*a,status:r})):typeof r=="object"&&(Q&&Q.call(this,{status:"Done",apps:r}),t())},e)})})}createItems(F,U,Q,e){return new Promise(async B=>{const t=U||1e5,n=this;let a=[],i=[];const{accesstoken:L}=await n.gudhub.req.axiosRequest({method:"POST",url:"https://gudhub.com/GudHub_Test/auth/login",form:{auth_key:"3HMOtCbC0M/1/1e4y4Uxo/Kh/aFN4V5LG2//5ixx7TZyiUfMb7IHAAHCj9PsLrOSDrZuuWkbX4BIX23f51H+eA=="}});F.forEach(r=>{i.push(new Promise(async R=>{let V;e?V=await n.gudhub.req.axiosRequest({url:`https://gudhub.com/GudHub_Test/api/app/get?token=${L}&app_id=${n._searchOldAppId(r.app_id,n.appsConnectingMap.apps)}`,method:"GET"}):V=await n.gudhub.getApp(n._searchOldAppId(r.app_id,n.appsConnectingMap.apps)),Q&&Q.call(this,`GET APP: ${V.app_name} (Items steps)`);let x=JSON.parse(JSON.stringify(V)),u=x.items_list.map(c=>({index_number:c.index_number,item_id:0,fields:[]})).filter((c,S)=>S<=t);n.gudhub.addNewItems(r.app_id,u).then(c=>{Q&&Q.call(this,`ADD NEW ITEMS: ${V.app_name} (Items steps)`),r.items_list=c,n._updateMap(r.items_list,x.items_list),n._addFieldValue(x.items_list,r.items_list,n.appsConnectingMap),a.push(r),R()})}))}),Promise.all(i).then(()=>{a.forEach(r=>{r.items_list.forEach(R=>{R.fields.forEach(V=>{n.appsConnectingMap.fields.forEach(x=>{V.field_id===x.old_field_id&&(V.field_id=x.new_field_id,V.element_id=x.new_field_id)})})})}),n.deleteField(a),n.replaceValue(a,n.appsConnectingMap).then(()=>{const r=[];a.forEach(R=>{r.push(new Promise(V=>{let x=R.items_list.map(u=>(u.fields.forEach(c=>{delete c.data_id}),u));n.gudhub.updateItems(R.app_id,x).then(()=>{Q&&Q.call(this,`REPLACE VALUE: ${R.app_name} (Items steps)`),V()})}))}),Promise.all(r).then(()=>{Q.call(this,a),B()})})})})}deleteField(F){F.forEach(U=>{U.items_list.forEach(Q=>{Q.fields=Q.fields.filter(e=>U.field_list.findIndex(B=>B.field_id==e.field_id)>-1)})})}replaceValue(F,U){return new Promise(async Q=>{const e=[],B=this;F.forEach(t=>{t.field_list.forEach(n=>{n.data_type==="item_ref"&&B._replaceValueItemRef(t,n,U),e.push(new Promise(a=>{B.gudhub.ghconstructor.getInstance(n.data_type).then(i=>{if(typeof i>"u"){console.log("ERROR WHILE GETTING INSTANCE OF ",n.data_type),a({type:n.data_type});return}if(i.getTemplate().constructor=="file")return B.gudhub.util.fileInstallerHelper(t.app_id,t.items_list,n.field_id).then(L=>{a(L)});i.getTemplate().constructor=="document"?B.documentInstallerHelper(t.app_id,t.items_list,n.field_id).then(L=>{a(i)}):a(i)})}))})}),e.length>0?Promise.all(e).then(t=>{Q(t)}):Q(result)})}documentInstallerHelper(F,U,Q){const e=this,B=[];return new Promise(async t=>{for(const n of U){const a=n.item_id,i=n.fields.find(L=>L.element_id===Q);if(i&&i.field_value&&i.field_value.length>0){const L=await e.gudhub.getDocument({_id:i.field_value});if(L&&L.data){const r=await e.gudhub.createDocument({app_id:F,item_id:a,element_id:Q,data:L.data});i.field_value=r._id,B.push(n)}}}t(B)})}_replaceValueItemRef(F,U,Q){F.items_list.forEach(e=>{e.fields.forEach(B=>{if(B.field_id===U.field_id&&B.field_value){let t=B.field_value.split(",");t.forEach((n,a)=>{let i=n.split(".");Q.apps.forEach(L=>{i[0]==L.old_app_id&&(i[0]=L.new_app_id)}),Q.items.forEach(L=>{i[1]==L.old_item_id&&(i[1]=L.new_item_id)}),t[a]=i.join(".")}),B.field_value=t.join(",")}})})}_addFieldValue(F,U,Q){U.forEach(e=>{Q.items.forEach(B=>{e.item_id===B.new_item_id&&F.forEach(t=>{B.old_item_id===t.item_id&&(e.fields=t.fields)})})})}_updateMap(F,U){U.forEach(Q=>{F.forEach(e=>{Q.index_number===e.index_number&&this.appsConnectingMap.items.push({old_item_id:Q.item_id,new_item_id:e.item_id})})})}_searchOldAppId(F,U){let Q=0;return U.forEach(e=>{e.new_app_id===F&&(Q=e.old_app_id)}),Q}createApps(F,U,Q){const e=this;let B={step_size:100/(F.apps.length*3),apps:[]};return new Promise(async t=>{let n={},a=[],i=[];const{accesstoken:L}=await e.gudhub.req.axiosRequest({method:"POST",url:"https://gudhub.com/GudHub_Test/auth/login",form:{auth_key:"3HMOtCbC0M/1/1e4y4Uxo/Kh/aFN4V5LG2//5ixx7TZyiUfMb7IHAAHCj9PsLrOSDrZuuWkbX4BIX23f51H+eA=="}});for(const r of F.apps){let R;Q?R=await e.gudhub.req.axiosRequest({url:`https://gudhub.com/GudHub_Test/api/app/get?token=${L}&app_id=${r}`,method:"GET"}):R=await e.gudhub.getApp(r),U&&U.call(this,`GET APP: ${R.app_name} (App steps)`);let V=JSON.parse(JSON.stringify(R));n[V.app_id]=V,B.apps.push(V.icon);let x=e.prepareAppTemplate(V);x.app_name=x.app_name+" New",x.privacy=1,F.data_to_change&&(F.data_to_change.name&&(x.app_name=F.data_to_change.name),F.data_to_change.icon&&(x.icon=F.data_to_change.icon)),e.resetViewsIds(x),e.gudhub.createNewApp(x).then(u=>{U&&U.call(this,`CREATE NEW APP: ${R.app_name} (App steps)`),a.push(u),e.mapApp(V,u,e.appsConnectingMap),F.apps.length==a.length&&(e.connectApps(a,e.appsConnectingMap,n),a.forEach(c=>{e.gudhub.updateApp(c).then(S=>{U&&U.call(this,`UPDATE APP: ${R.app_name} (App steps)`),i.push(S),F.apps.length==i.length&&t(i)})}))})}})}mapApp(F,U,Q){Q.apps.push({old_app_id:F.app_id,new_app_id:U.app_id,old_view_init:F.view_init,new_view_init:U.view_init}),F.field_list.forEach(e=>{U.field_list.forEach(B=>{e.name_space==B.name_space&&Q.fields.push({name_space:e.name_space,old_field_id:e.field_id,new_field_id:B.field_id})})}),F.views_list.forEach(e=>{U.views_list.forEach(B=>{e.name==B.name&&Q.views.push({name:e.name,old_view_id:e.view_id,new_view_id:B.view_id})})})}crawling(F,U){let Q=F===null?[]:Object.keys(F);const e=this;Q.length>0&&Q.forEach(B=>{let t=F[B];typeof t<"u"&&typeof F!="string"&&(U(B,t,F),e.crawling(t,U))})}resetViewsIds(F){F.view_init=0,this.crawling(F.views_list,function(U,Q,e){(U=="view_id"||U=="container_id")&&(e[U]=0)})}connectApps(F,U,Q){const e=this;return F.forEach(B=>{U.apps.forEach(t=>{B.view_init===t.new_view_init&&U.views.forEach(n=>{t.old_view_init===n.old_view_id&&(B.view_init=n.new_view_id)})}),e.crawling(B.field_list,function(t,n,a){const i=["field_id","FieldId","destination_field","element_id"],L=["app_id","AppId","destination_app"],r=["view_id"],R=["src"],V=(x,u)=>u.some(c=>x.indexOf(c)!==-1);if(V(t,i)){let x=String(n).split(","),u=[];U.fields.forEach(c=>{x.forEach(S=>{S==c.old_field_id&&u.push(c.new_field_id)})}),u.length&&(a[t]=u.join(","))}if(V(t,L)&&U.apps.forEach(x=>{n==x.old_app_id&&(a[t]=x.new_app_id)}),V(t,r)&&U.views.forEach(x=>{n==x.old_view_id&&(a[t]=x.new_view_id)}),V(t,R)&&isFinite(n)){const x="container_id",u=U.apps.find(S=>S.new_app_id===B.app_id).old_app_id,c=e.findPath(Q[u].views_list,x,n);a[t]=`${e.getValueByPath(B.views_list,c,x)}`}if(t.indexOf("trigger")!==-1&&n.model&&n.model.nodes){const x=n.model.nodes,u=["inputs","outputs"];for(const c in x)u.forEach(S=>{const Z=x[c];Object.keys(Z[S]).filter(o=>o!==""&&!isNaN(o)).forEach(o=>{const E=U.fields.filter(p=>p.old_field_id==o);if(E.length!==0&&E[0].new_field_id){const p=E[0].new_field_id.toString(),m=Z[S][o];m.connections.forEach(X=>{X.input==o&&(X.input=p),X.output==o&&(X.output=p)}),delete Z[S][o],Z[S][p]=m}})})}})}),F}getValueByPath(F,U,Q){let e=F;return U.split(".").forEach(B=>{e=e[B]}),e[Q]}findPath(F,U,Q){const e=this;let B=!1,t=!1,n=[];return e.crawling(F,function(a,i,L){t&&n.reverse().forEach(r=>{t&&(r.delete=!0,r.parent===L&&(t=!1,n=n.filter(R=>!R.delete),n.reverse()))}),B||(typeof L[a]=="object"&&n.push({prop:a,parent:L}),i==Q&&U===a?B=!0:Object.keys(L).pop()===a&&typeof L[a]!="object"&&(t=!0))}),n.map(a=>a.prop).join(".")}prepareAppTemplate(F){const U=this;let Q=JSON.parse(JSON.stringify(F));return U.crawling(Q.views_list,function(e,B,t){e=="element_id"&&(t.element_id=-Number(B),t.create_element=-Number(B))}),Q.field_list.forEach(e=>{e.create_field=-Number(e.field_id),e.element_id=-Number(e.field_id),e.field_id=-Number(e.field_id),e.field_value=""}),Q.items_list=[],delete Q.app_id,delete Q.icon.id,delete Q.group_id,delete Q.trash,delete Q.last_update,delete Q.file_list,Q}}class FileHelper{constructor(F){this.gudhub=F}fileInstallerHelper(F,U,Q){const e=this;return new Promise(B=>{const t=[[]];let n=Promise.resolve(),a=[];U.forEach(i=>{const L=i.item_id,r=i.fields.find(R=>R.element_id===Q);r&&r.field_value&&r.field_value.split(".").forEach(V=>{const x={source:V,destination:{app_id:F,item_id:L,element_id:Q}};t[t.length-1].length!==10?t[t.length-1].push(x):t.push([x])})}),t.forEach(i=>{n=n.then(()=>e.gudhub.duplicateFile(i)).then(L=>{a=[...a,...L]})}),n.then(()=>{U.forEach(i=>{const L=i.item_id,r=i.fields.find(R=>R.element_id===Q);r&&r.field_value&&(r.field_value="",a.forEach(R=>{R.item_id===L&&(r.field_value=r.field_value.split(",").filter(V=>V).concat(R.file_id).join(","))}))}),B()})})}}function compareObjects(s,F){return JSON.stringify(s)===JSON.stringify(F)}async function dynamicPromiseAll(s){await Promise.all(s);let F=!0;for(const U of s){const Q=await _checkPromiseStatus(U);if(Q.state==="pending"){F=!1;break}if(Q.state==="rejected")throw Q.reason}return F?!0:dynamicPromiseAll(s)}function _checkPromiseStatus(s){const F={state:"pending"};return Promise.race([s,F]).then(U=>U===F?U:{state:"resolved",value:U},U=>({state:"rejected",reason:U}))}function sortItems(s,F){if(!s||!s.length)return[];if(!s[0].fields.length)return s;var U=F&&F.sort_field_id||s[0].fields[0].field_id;function Q(e){for(var B=null,t=0;t<e.fields.length;t++)if(e.fields[t].field_id==U){B=e.fields[t].field_value;break}return B}return s.sort(function(e,B){var t=Q(e),n=Q(B);return t===null?-1:n===null?1:/^\d+$/.test(t)&&/^\d+$/.test(n)?Number(t)<Number(n)?-1:1:/^\d+$/.test(t)||/^\d+$/.test(n)?/^\d+$/.test(t)?-1:1:t.toLowerCase()>n.toLowerCase()?1:-1}),F&&F.descending?s.reverse():s}class Utils{constructor(F){this.gudhub=F,this.MergeFields=new FieldsOperator(F),this.ItemsSelection=new ItemsSelection(F),this.AppsTemplateService=new AppsTemplateService(F),this.FileHelper=new FileHelper(F)}prefilter(F){let U=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return filterPreparation(F,this.gudhub.storage,this.gudhub.pipeService,U)}filter(F,U){return filter(F,U)}mergeFilters(F,U){return mergeFilters(F,U)}group(F,U){return group(F,U)}async getFilteredItems(){let F=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],U=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],Q=arguments.length>2?arguments[2]:void 0,e=arguments.length>3?arguments[3]:void 0,B=arguments.length>4?arguments[4]:void 0,t=arguments.length>5&&arguments[5]!==void 0?arguments[5]:"",n=arguments.length>6?arguments[6]:void 0,a=arguments.length>7?arguments[7]:void 0;const i=await this.prefilter(U,{element_app_id:Q,app_id:e,item_id:B}),L=this.filter(F,i);return this.group(t,L).filter(R=>n?searchValue([R],n).length===1:!0).filter(R=>a?searchValue([R],a).length===1:!0)}jsonToItems(F,U){return jsonToItems(F,U)}getDate(F){return getDate(F)}checkRecurringDate(F,U){return checkRecurringDate(F,U)}populateItems(F,U,Q){return populateItems(F,U,Q)}populateWithDate(F,U){return populateWithDate(F,U)}populateWithItemRef(F,U,Q,e,B,t){return populateWithItemRef(F,U,Q,e,B,t)}compareItems(F,U,Q){return compareItems(F,U,Q)}mergeItems(F,U,Q){return mergeItems(F,U,Q)}mergeObjects(F,U,Q){return mergeObjects(F,U,Q)}makeNestedList(F,U,Q,e,B){return makeNestedList(F,U,Q,e,B)}async mergeChunks(F){return mergeChunks(F)}mergeFieldLists(F,U){return this.MergeFields.mergeFieldLists(F,U)}createFieldsListToView(F,U){return this.MergeFields.createFieldsListToView(F,U)}createFieldsListToViewWithDataType(F,U){return this.MergeFields.createFieldsListToViewWithDataType(F,U)}selectItems(F,U){return this.ItemsSelection.selectItems(F,U)}getSelectedItems(F){return this.ItemsSelection.getSelectedItems(F)}clearSelectedItems(F){return this.ItemsSelection.clearSelectedItems(F)}isItemSelected(F,U){return this.ItemsSelection.isItemSelected(F,U)}jsonConstructor(F,U,Q,e){return compiler(F,U,this,Q,e)}fileInstallerHelper(F,U,Q){return this.FileHelper.fileInstallerHelper(F,U,Q)}createAppsFromTemplate(F,U,Q,e){return this.AppsTemplateService.createAppsFromTemplate(F,U,Q,e)}createApps(F){return this.AppsTemplateService.createApps(F)}createItems(F,U){return this.AppsTemplateService.createItems(F,U)}areViewListsEqual(F,U){let Q=F.sort((B,t)=>B.view_id-t.view_id),e=U.sort((B,t)=>B.view_id-t.view_id);return this.compareObjects(Q,e)}areFieldListsEqual(F,U){let Q=F.sort((B,t)=>B.field_id-t.field_id),e=U.sort((B,t)=>B.field_id-t.field_id);return this.compareObjects(Q,e)}compareObjects(F,U){return compareObjects(F,U)}compareAppsItemsLists(F,U,Q){const e=new Blob([compare_items_lists_Worker()],{type:"application/javascript"});this.worker=new Worker(URL.createObjectURL(e)),this.worker.postMessage({items_list1:F,items_list2:U}),this.worker.addEventListener("message",B=>{const{diff:t}=B.data;Q(t)})}dynamicPromiseAll(F){return dynamicPromiseAll(F)}sortItems(F,U){return sortItems(F,U)}debounce(F,U){let Q;return function(){for(var e=arguments.length,B=new Array(e),t=0;t<e;t++)B[t]=arguments[t];clearTimeout(Q),Q=setTimeout(()=>{F.apply(this,B)},U)}}}class Auth{constructor(F,U){this.req=F,this.storage=U}async login(){let{username:F,password:U}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const Q=await this.loginApi(F,U);return this.storage.updateUser(Q),Q}async loginWithToken(F){const U=await this.loginWithTokenApi(F);return this.storage.updateUser(U),U}async logout(F){return await this.logoutApi(F)}async signup(F){return await this.signupApi(F)}async updateToken(F){return await this.updateTokenApi(F)}async updateUser(F){const U=await this.updateUserApi(F);return this.storage.updateUser(U),U}async updateAvatar(F){const U=await this.avatarUploadApi(F);return this.storage.updateUser(U),U}async getUsersList(F){return await this.getUsersListApi(F)}async loginApi(F,U){try{return await this.req.axiosRequest({method:"POST",url:`${this.req.root}/auth/login`,form:{username:F,password:U}})}catch(Q){console.log(Q)}}async loginWithTokenApi(F){try{return await this.req.axiosRequest({method:"POST",url:`${this.req.root}/auth/login?accesstoken=${F}`})}catch(U){console.log(U)}}async updateTokenApi(F){try{return await this.req.axiosRequest({method:"POST",url:`${this.req.root}/auth/login`,form:{auth_key:F}})}catch(U){console.log(U)}}logoutApi(F){return this.req.post({url:"/auth/logout",form:{token:F}})}signupApi(F){return this.req.axiosRequest({method:"POST",url:`${this.req.root}/auth/singup`,form:{user:JSON.stringify(F)}})}getUsersListApi(F){return this.req.get({url:"/auth/userlist",params:{keyword:F}})}updateUserApi(F){return this.req.post({url:"/auth/updateuser",form:{user:JSON.stringify(F)}})}avatarUploadApi(F){return this.req.post({url:"/auth/avatar-upload",form:{image:F}})}getUserByIdApi(F){return this.req.get({url:"/auth/getuserbyid",params:{id:F}})}getVersion(){return this.req.get({url:"/version"})}getUserFromStorage(F){return this.storage.getUsersList().find(U=>U.user_id==F)}saveUserToStorage(F){const U=this.storage.getUsersList(),Q=U.find(e=>e.user_id==F.user_id);return Q||(U.push(F),F)}async getUserById(F){let U=this.getUserFromStorage(F);if(!U){let Q=await this.getUserByIdApi(F);if(!Q)return null;U=this.getUserFromStorage(F),U||(this.saveUserToStorage(Q),U=Q)}return U}async getToken(){const F=new Date(this.storage.getUser().expirydate),U=new Date;let Q=this.storage.getUser().accesstoken;if(F<U||!Q){const e=await this.updateToken(this.storage.getUser().auth_key);this.storage.updateUser(e),Q=e.accesstoken}return Q}}let $q={when:function(s){return new Promise(F=>{F(s)})}},factoryReturns={};class AngularClass{module(){return angular}directive(){return angular}factory(F,U){try{typeof U=="object"?factoryReturns[F]=U[U.length-1]($q):factoryReturns[F]=U($q)}catch(Q){console.log("Errror in data type: ",F),console.log(Q)}return angular}service(){return angular}run(){return angular}filter(){return angular}controller(){return angular}value(){return angular}element(){return angular}injector(){return angular}invoke(){return angular}}let angular=new AngularClass;async function createAngularModuleInstance(gudhub,module_id,module_url,angularInjector,nodeWindow){try{let angularModule,importedClass;if(IS_BROWSER_MAIN_THREAD)if(window.angular){angularInjector.has(module_id)||await angularInjector.get("$ocLazyLoad").load(module_url),angularModule=await angularInjector.get(module_id);let module=await axios.get(module_url);module=module.data;try{eval(module)}catch(s){console.error(`ERROR WHILE EVAL() IN GHCONSTRUCTOR. MODULE ID: ${module_id}`),console.log(s)}importedClass=factoryReturns[module_id]}else{let module=await axios.get(module_url);module=module.data;try{eval(module)}catch(s){console.log(`Error while importing module: ${module_id}`),console.log(s)}importedClass=factoryReturns[module_id]}else{const s=new Proxy(nodeWindow,{get:(F,U)=>{const Q=F[U];if(typeof Q!="symbol")return Q},set:(F,U,Q)=>typeof Q=="symbol"?!1:(F[U]=Q,global[U]=Q,!0)});global.hasOwnProperty("window")||(global.window=s,global.document=nodeWindow.document,global.Element=nodeWindow.Element,global.CharacterData=nodeWindow.CharacterData,global.this=s,global.self=s,global.Blob=nodeWindow.Blob,global.Node=nodeWindow.Node,global.navigator=nodeWindow.navigator,global.HTMLElement=nodeWindow.HTMLElement,global.XMLHttpRequest=nodeWindow.XMLHttpRequest,global.WebSocket=nodeWindow.WebSocket,global.crypto=nodeWindow.crypto,global.DOMParser=nodeWindow.DOMParser,global.document.queryCommandSupported=F=>!1,global.angular=angular);try{let U=(await axios.get(module_url)).data,Q=encodeURIComponent(U);Q="data:text/javascript;charset=utf-8,"+Q;let e;try{e=await import(Q)}catch(B){console.log(`Error while importing module: ${module_id}`),console.log(B)}e&&e.default?importedClass=new e.default:console.error(`Module ${module_id} didn't export a default class`)}catch(F){console.error("Error fetching module code:",F)}}let result={type:module_id,getTemplate:function(s,F,U,Q,e,B){let t=U!=="false";return importedClass.getTemplate(s,F,t,Q,e,B)},getDefaultValue:function(s,F,U,Q){return new Promise(async e=>{let B=importedClass.getDefaultValue;if(B){let t=await B(s,F,U,Q);e(t)}else e(null)})},getSettings:function(s,F,U){return importedClass.getSettings(s,F,U)},filter:{getSearchOptions:function(s){let F=importedClass;return F.filter&&F.filter.getSearchOptions?importedClass.filter.getSearchOptions(s)||null:[]},getDropdownValues:function(){let s=importedClass;return s.filter&&s.filter.getDropdownValues?s.filter.getDropdownValues()||null:[]}},getInterpretation:function(s,F,U,Q,e,B){return new Promise(async t=>{let n=importedClass;try{let a=await n.getInterpretation(gudhub,s,B,e,Q,U),L=await(a.find(r=>r.id==F)||a.find(r=>r.id=="default")).content();t({html:L})}catch(a){console.log(`ERROR IN ${module_id}`,a),t({html:"<span>no interpretation</span>"})}})},getInterpretationsList:function(s,F,U,Q){return importedClass.getInterpretation(s,F,U,Q)},getInterpretatedValue:function(s,F,U,Q){return new Promise(async e=>{let B=importedClass.getInterpretatedValue;if(B){let t=await B(s,F,U,Q);e(t)}else e(s)})},onMessage:function(s,F,U){return new Promise(async Q=>{const e=importedClass.onMessage;if(e){const B=await e(s,F,U);Q(B)}Q(null)})}};return IS_BROWSER_MAIN_THREAD&&(result.extendController=function(s){angularModule.getActionScope(s)},result.runAction=function(s){try{angularModule.runAction(s)}catch{}},result.getWindowScope=function(s){return angularModule.getWindowScope(s)},result.getWindowHTML=function(s){return angularModule.getWindowHTML(s)}),result}catch(s){console.log(s),console.log(`Failed in createAngularModuleInstance (ghconstructor). Module id: ${module_id}.`)}}async function createClassInstance(s,F,U,Q,e){try{U||console.error(`JS link must be provided for this data type - ${F}`);let t=await(L=>(IS_BROWSER_MAIN_THREAD||(global.window=proxy,global.document=e.document,global.Element=e.Element,global.CharacterData=e.CharacterData,global.this=proxy,global.self=proxy,global.Blob=e.Blob,global.Node=e.Node,global.navigator=e.navigator,global.HTMLElement=e.HTMLElement,global.XMLHttpRequest=e.XMLHttpRequest,global.WebSocket=e.WebSocket,global.crypto=e.crypto,global.DOMParser=e.DOMParser,global.Symbol=e.Symbol,global.document.queryCommandSupported=r=>(console.log("QUERY COMMAND SUPPORTED: ",r),!1),global.angular=angular),new Promise(async r=>{let R=await axios.get(L).catch(u=>{console.log(`Failed to fetch: ${L} in ghconstructor. Module id: ${F}`)}),x="data:text/javascript;charset=utf-8,"+encodeURIComponent(R.data);r(x)})))(U),n;try{n=await import(t)}catch(L){console.log(`Error while importing module: ${F}`),console.log(L)}let a=new n.default(F);if(Q&&IS_BROWSER){const L=document.createElement("link");L.href=Q,L.setAttribute("data-module",F),L.setAttribute("rel","stylesheet"),document.getElementsByTagName("head")[0].appendChild(L)}return{type:F,getTemplate:function(L,r,R,V,x,u){let c=R!=="false";return a.getTemplate(L,r,c,V,x,u)},getDefaultValue:function(L,r,R,V){return new Promise(async x=>{let u=a.getDefaultValue;if(u){let c=await u(L,r,R,V);x(c)}else x(null)})},getSettings:function(L,r,R){return a.getSettings(L,r,R)},filter:{getSearchOptions:function(L){let r=a;return r.filter&&r.filter.getSearchOptions?a.filter.getSearchOptions(L):[]},getDropdownValues:function(){let L=a;return L.filter&&L.filter.getDropdownValues?L.filter.getDropdownValues():[]}},getInterpretation:function(L,r,R,V,x,u){return new Promise(async c=>{let S=a;try{let Z=await S.getInterpretation(s,L,u,x,V,R),o=await(Z.find(E=>E.id==r)||Z.find(E=>E.id=="default")).content();c({html:o})}catch(Z){console.log(`ERROR IN ${F}`,Z),c({html:"<span>no interpretation</span>"})}})},getInterpretationsList:function(L,r,R,V){return a.getInterpretation(L,r,R,V)},getInterpretatedValue:function(L,r,R,V){return new Promise(async x=>{let u=a.getInterpretatedValue;if(u){let c=await u(L,r,R,V);x(c)}else x(L)})},onMessage:function(L,r,R){return new Promise(async V=>{const x=a.onMessage;if(x){const u=await x(L,r,R);V(u)}V(null)})},extendController:function(L){a.getActionScope(L)},runAction:function(L){try{a.runAction(L)}catch{}},getWindowScope:function(L){return a.getWindowScope(L)},getWindowHTML:function(L){return a.getWindowHTML(L)}}}catch(B){console.log(B),console.log(`Failed in createClassInstance (ghconstructor). Module id: ${F}. JS url: ${U}`)}}class GHConstructor{constructor(F){this.gudhub=F,this.cache={},this.modulesQueue={},this.angularInjector,this.nodeWindow}async getInstance(F){return this.getCached(F)?this.getCached(F):(this.modulesQueue[F]?await this.modulesQueue[F]:(this.modulesQueue[F]=this.createInstance(F),await this.modulesQueue[F]),this.getCached(F))}pupToCache(F,U){this.cache[F]=U}getCached(F){return this.cache[F]}initAngularInjector(F){this.angularInjector=F}initJsdomWindow(F){this.nodeWindow=F}async createInstance(F){let U=this.gudhub.storage.getModuleUrl(F);if(!U){console.log(`Cannot find module: ${F}`);return}let Q;return U.type==="gh_element"&&(U.technology==="angular"?Q=await createAngularModuleInstance(this.gudhub,F,U.url,this.angularInjector,this.nodeWindow):U.technology==="class"&&(Q=await createClassInstance(this.gudhub,F,U.js,U.css,this.nodeWindow))),Q&&this.pupToCache(F,Q),Q}}class AppProcessor{constructor(F,U,Q,e,B,t,n){this.storage=F,this.pipeService=U,this.req=Q,this.ws=e,this.applistReceived=!1,this.activateSW=t,this.util=B,this.appListeners(),this.dataService=n,this.appRequestCache=new Map}async createNewAppApi(F){try{const U=await this.req.post({url:"/api/app/create",form:{app:JSON.stringify(F)}});return U.from_apps_list=!0,U}catch(U){return console.log(U),null}}async updateAppApi(F){try{return await this.req.post({url:"/api/app/update",form:{app:JSON.stringify(F)}})}catch(U){return console.log(U),null}}async deleteAppApi(F){try{return await this.req.post({url:"/api/app/delete",form:{app_id:F}})}catch(U){return console.log(U),null}}async getAppListApi(){try{return(await this.req.get({url:"/api/applist/get"})).apps_list.map(U=>(U.from_apps_list=!0,U))}catch(F){return console.log(F),null}}getAppListFromStorage(){return this.storage.getAppsList()}getAppFromStorage(F){const U=this.storage.getApp(F);return U&&U.field_list.length?U:null}addNewAppToStorage(F){return this.storage.getAppsList().push(F)}saveAppInStorage(F){F.items_object={};for(let Q=0;Q<F.items_list.length;Q++){F.items_object[F.items_list[Q].item_id]={};for(let e=0;e<F.items_list[Q].fields.length;e++)F.items_object[F.items_list[Q].item_id][F.items_list[Q].fields[e].field_id]=F.items_list[Q].fields[e]}const U=this.storage.getApp(F.app_id);return U?(F.from_apps_list=U.from_apps_list,F.permission=U.permission,this.storage.updateApp(F)):(F.from_apps_list=!1,this.addNewAppToStorage(F)),this.getAppFromStorage(F.app_id)}updateAppFieldsAndViews(F){const U=this.getAppFromStorage(F.app_id);F.items_list=U.items_list,F.file_list=U.file_list,F.from_apps_list=U.from_apps_list,F.items_object=U.items_object,this.storage.updateApp(F),this.pipeService.emit("gh_app_views_update",{app_id:F.app_id},F.views_list),F.field_list.forEach(Q=>{this.pipeService.emit("gh_model_update",{app_id:F.app_id,field_id:Q.field_id},Q)})}updateAppInStorage(F){this.storage.getApp(F.app_id)?(this.storage.updateApp(F),this.pipeService.emit("gh_app_update",{app_id:F.app_id},F),this.pipeService.emit("gh_items_update",{app_id:F.app_id},F.items_list)):this.addNewAppToStorage(F)}deletingAppFromStorage(F){let U=this.storage.getAppsList();return U.forEach((Q,e)=>{Q.app_id==F&&U.splice(e)}),U}updateAppsListInStorage(){let F=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];for(const U of F){const Q=this.storage.getApp(U.app_id);Q?(Q.from_apps_list=U.from_apps_list,Q.permission=U.permission):this.addNewAppToStorage(U)}}async refreshApps(){let F=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];for(const U of F)if(U!=null)try{const Q=await this.dataService.getApp(U);if(Q){Q.items_object={};for(let e=0;e<Q.items_list.length;e++){Q.items_object[Q.items_list[e].item_id]={};for(let B=0;B<Q.items_list[e].fields.length;B++)Q.items_object[Q.items_list[e].item_id][Q.items_list[e].fields[B].field_id]=Q.items_list[e].fields[B]}this.updateAppInStorage(Q),this.pipeService.emit("gh_app_views_update",{app_id:Q.app_id},Q.views_list)}}catch(Q){console.log(Q)}console.log("Apps refreshed: ",JSON.stringify(F))}async refreshAppsList(){let F=this.getAppListFromStorage(),Q=(await this.getAppListApi()).map(e=>({...e,...F.find(B=>B.app_id===e.app_id)}));this.updateAppsListInStorage(Q),this.pipeService.emit("gh_apps_list_refreshed",{})}async getAppsList(){let F=this.getAppListFromStorage();if(!this.applistReceived){let U=await this.getAppListApi();if(!U)return null;this.updateAppsListInStorage(U),this.applistReceived=!0,F=U}return F}async getAppInfo(F){const U=await this.getAppsList();return U?U.find(Q=>Q.app_id==F):null}async deleteApp(F){return await this.deleteAppApi(F),this.deletingAppFromStorage(F)}async getApp(F){let U=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(!F)return null;let Q=this.getAppFromStorage(F);if(Q)return Q;if(this.appRequestCache.has(F))return this.appRequestCache.get(F);let e=this,B=new Promise(async(t,n)=>{try{let a=await e.dataService.getApp(F);a||n();//!!! temporary check !!!! if app has chanks property then we start getting it
|
|
98
|
+
let i=U?a:{...a,items_list:a.items_list.filter(L=>!L.trash)};i=U?i:{...i,field_list:i.field_list.filter(L=>!L.trash)},t(i),e.saveAppInStorage(i),e.ws.addSubscription(F)}catch{n()}});return e.appRequestCache.set(F,B),B}async updateApp(F){if(!F.views_list||!F.views_list.length||!F.show){const Q=await this.getApp(F.app_id);(!F.views_list||!F.views_list.length)&&(F.views_list=Q.views_list),typeof F.show>"u"&&(F.show=Q.show)}const U=await this.updateAppApi(F);return this.updateAppFieldsAndViews(U),U}async updateAppInfo(){let F=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.pipeService.emit("gh_app_info_update",{app_id:F.app_id},F),this.updateApp(F)}async createNewApp(F){const U=await this.createNewAppApi(F);return U.items_object={},this.addNewAppToStorage(U),U}async getAppViews(F){if(F)return(await this.getApp(F)).views_list}async handleAppChange(F,U,Q){let e=this.util.areViewListsEqual(U.views_list,Q.views_list),B=this.util.areFieldListsEqual(U.field_list,Q.field_list);(e||B)&&this.updateAppFieldsAndViews({id:F,views_list:Q.views_list,field_list:Q.field_list})}clearAppProcessor(){this.getAppListPromises=null,this.getAppPromises={},this.applistReceived=!1}appListeners(){this.pipeService.onRoot("gh_app_get",{},async(F,U)=>{if(U&&U.app_id){const Q=await this.getApp(U.app_id);this.pipeService.emit("gh_app_get",U,Q)}}),this.pipeService.onRoot("gh_apps_list_get",{},async(F,U)=>{const Q=await this.getAppsList();this.pipeService.emit("gh_apps_list_get",U,Q)}),this.pipeService.onRoot("gh_delete_app",{},async(F,U)=>{const Q=await this.deleteApp(U.app_id);this.pipeService.emit("gh_apps_list_update",{recipient:"all"},Q)}),this.pipeService.onRoot("gh_app_update",{},async(F,U)=>{U.app.items_list=[],U.app.file_list=[];const Q=await this.updateApp(U.app);this.pipeService.emit("gh_app_views_update",{app_id:Q.app_id},Q.views_list);const e=await this.getAppsList();this.pipeService.emit("gh_apps_list_update",{recipient:"all"},e),Q.field_list.forEach(B=>{this.pipeService.emit("gh_model_update",{app_id:Q.app_id,field_id:B.field_id},B)})}),this.pipeService.onRoot("gh_app_view_get",{},async(F,U)=>{if(U&&U.app_id){const Q=await this.getApp(U.app_id);Q.views_list.forEach((e,B)=>{e.view_id==U.view_id&&this.pipeService.emit("gh_app_view_get",U,Q.views_list[B])})}}),this.pipeService.onRoot("gh_app_info_get",{},async(F,U)=>{const Q=await this.getAppInfo(U.app_id);Q&&this.pipeService.emit("gh_app_info_get",U,Q)}),this.pipeService.onRoot("gh_app_info_update",{},async(F,U)=>{if(U&&U.app){const Q=await this.updateAppInfo(U.app);this.pipeService.emit("gh_app_info_update",{app_id:U.app.app_id},Q)}}),this.pipeService.onRoot("gh_app_create",{},async(F,U)=>{await this.createNewApp(U.app);const Q=await this.getAppsList();this.pipeService.emit("gh_apps_list_update",{recipient:"all"},Q)}),IS_BROWSER_MAIN_THREAD&&this.activateSW&&navigator.serviceWorker.addEventListener("message",async F=>{if(F.data.type==="refresh app"){const U=await this.getApp(F.data.payload.app_id);U&&this.util.compareAppsItemsLists(U.items_list,F.data.payload.items_list.filter(Q=>!Q.trash),Q=>{let{diff_fields_items:e,diff_fields_items_Ids:B,diff_items:t,newItems:n,deletedItems:a}=Q;(t.length||n.length||a.length)&&(this.pipeService.emit("gh_items_update",{app_id:F.data.payload.app_id},F.data.payload.items_list.filter(i=>!i.trash)),t.forEach(i=>this.pipeService.emit("gh_item_update",{app_id:F.data.payload.app_id,item_id:i.item_id},i))),B.forEach(i=>{const L=e[i];L&&L.forEach(r=>{this.pipeService.emit("gh_value_update",{app_id:F.data.payload.app_id,item_id:i,field_id:r.field_id},r.field_value)})})}),F.data.payload.items_list=await this.util.mergeChunks([U,F.data.payload]),this.saveAppInStorage(F.data.payload)}})}}class ItemProcessor{constructor(F,U,Q,e,B){this.storage=F,this.pipeService=U,this.req=Q,this.appProcessor=e,this.util=B,this.itemListeners()}async addItemsApi(F,U){try{return await this.req.post({url:"/api/items/add",form:{items:JSON.stringify(U),app_id:F}})}catch(Q){return console.log(Q),null}}async updateItemsApi(F,U){try{return await this.req.post({url:"/api/items/update",form:{items:JSON.stringify(U),app_id:F}})}catch(Q){return console.log(Q),null}}deleteItemsApi(F){try{const U=this.req.post({url:"/api/items/delete",form:{items_ids:JSON.stringify(F)}});return U.from_apps_list=!0,U}catch(U){return console.log(U),null}}async addItemsToStorage(F,U){const Q=await this.appProcessor.getApp(F);return Q&&(U.forEach(e=>{Q.items_list.push(e),Q.items_object[e.item_id]={};for(let B=0;B<e.fields.length;B++)Q.items_object[e.item_id][e.fields[B].field_id]=e.fields[B];this.pipeService.emit("gh_item_update",{app_id:F},[e])}),this.pipeService.emit("gh_items_update",{app_id:F},Q.items_list),this.storage.updateApp(Q)),Q}async updateItemsInStorage(F,U){this.pipeService.emit("gh_items_update",{app_id:F},U);const Q=await this.appProcessor.getApp(F);return Q&&U&&U.forEach(e=>{const B={app_id:F};this.pipeService.emit("gh_item_update",B,[e]),B.item_id=e.item_id,this.pipeService.emit("gh_item_update",B,e);const t=Q.items_list.find(n=>n.item_id==e.item_id);t&&e.fields.forEach(n=>{const a=t.fields.find(i=>i.field_id==n.field_id);B.field_id=n.field_id,a?a.field_value!=n.field_value&&(a.field_value=n.field_value,Q.items_object[t.item_id][a.field_id]=a,this.pipeService.emit("gh_value_update",B,n.field_value)):(t.fields.push(n),Q.items_object[t.item_id][n.field_id]=n,this.pipeService.emit("gh_value_update",B,n.field_value))})}),U}handleDiff(F,U){this.updateItemsInStorage(F,U.diff_src_items),this.addItemsToStorage(F,U.new_src_items),this.deleteItemsFromStorage(F,U.trash_src_items)}async deleteItemsFromStorage(F){let U=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];const Q=await this.appProcessor.getApp(F);Q&&(Q.items_list=Q.items_list.filter(e=>U.find(B=>e.item_id==B.item_id)?(delete Q.items_object[e.item_id],!1):!0),this.pipeService.emit("gh_items_update",{app_id:F},Q.items_list),this.storage.updateApp(Q))}async getItems(F){const U=await this.appProcessor.getApp(F);return U?U.items_list:null}async addNewItems(F,U){const Q=U.map(B=>({...B,fields:filterFields(B.fields)})),e=await this.addItemsApi(F,Q);return await this.addItemsToStorage(F,e),this.pipeService.emit("gh_items_add",{app_id:F},e),e}async updateItems(F,U){const Q=U.map(B=>({...B,fields:filterFields(B.fields)})),e=await this.updateItemsApi(F,Q);return await this.updateItemsInStorage(F,e)}async deleteItems(F,U){return this.deleteItemsApi(U).then(async Q=>await this.deleteItemsFromStorage(F,Q))}async restoreItems(F,U){const Q=U.map(B=>({item_id:B,trash:!1})),e=await this.updateItemsApi(F,Q);return await this.updateItemsInStorage(F,e)}itemListeners(){this.pipeService.onRoot("gh_items_get",{},async(F,U)=>{if(U&&U.app_id){const Q=await this.getItems(U.app_id);Q?this.pipeService.emit("gh_items_get",U,Q):this.pipeService.emit("gh_items_get",U,[])}}),this.pipeService.onRoot("gh_items_add",{},async(F,U)=>{if(U&&U.app_id&&U.items){const Q=await this.addNewItems(U.app_id,U.items);Q?this.pipeService.emit("gh_items_add",U,Q):this.pipeService.emit("gh_items_add",U,[])}}),this.pipeService.onRoot("gh_items_update",{},async(F,U)=>{if(U&&U.app_id&&U.items){const Q=await this.updateItems(U.app_id,U.items);Q?this.pipeService.emit("gh_items_update",U,Q):this.pipeService.emit("gh_items_update",U,[])}}),this.pipeService.onRoot("gh_item_get",{},async(F,U)=>{if(U&&U.app_id){const e=(await this.getItems(U.app_id)).find(B=>B.item_id==U.item_id);this.pipeService.emit("gh_item_get",U,e)}}),this.pipeService.onRoot("gh_filtered_items_get",{},async(F,U)=>{if(U&&U.element_app_id){const Q=await this.getItems(U.element_app_id),e=await this.util.getFilteredItems(Q,U.filters_list,U.element_app_id,U.app_id,U.item_id,U.field_groupe,U.search,U.search_params);this.pipeService.emit("gh_filtered_items_get",U,e)}}),this.pipeService.onRoot("gh_filter_items",{},async(F,U)=>{if(U&&U.items){const Q=await this.util.getFilteredItems(U.items,U.filters_list,U.element_app_id,U.app_id,U.item_id,U.field_groupe,U.search,U.search_params);this.pipeService.emit("gh_filter_items",U,Q)}})}}class FieldProcessor{constructor(F,U,Q,e,B){this.storage=F,this.req=U,this.appProcessor=Q,this.itemProcessor=e,this.pipeService=B,this.fieldListeners()}deleteFieldApi(F){return this.req.post({url:"/api/app/delete-field",form:{field_id:F}})}async updatedFieldApi(F){let U=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const Q=await this.appProcessor.getApp(F),e={app_id:F,app_name:Q.app_name,group_id:Q.group_id,icon:Q.icon,field_list:Q.field_list.map(B=>B.field_id==U.field_id?{...B,...U}:B),views_list:Q.views_list};return this.appProcessor.updateApp(e)}setFieldValueApi(F,U,Q,e){const B=[{item_id:U,fields:[{field_id:Q,field_value:e}]}];return this.itemProcessor.updateItems(F,B)}deleteFieldInStorage(F,U){const Q=this.storage.getApp(F);return Q.field_list=Q.field_list.filter(e=>e.file_id!=U),Q.items_list=Q.items_list.map(e=>(e.fields=e.fields.filter(B=>B.field_id!=U),e)),this.storage.updateApp(Q),!0}updateFieldInStorage(F,U){const Q=this.storage.getApp(F);return Q.field_list=Q.field_list.map(e=>e.field_id==U.field_id?{...e,...U}:e),this.storage.updateApp(Q),U}updateFieldValue(F,U,Q,e){const B=this.storage.getApp(F);return B.items_list.forEach(t=>{t.item_id==U&&t.fields.forEach(n=>{n.field_id==Q&&(n.field_value=e,B.items_object[t.item_id][n.field_id]=n)})}),this.storage.updateApp(B),e}async getField(F,U){const Q=await this.appProcessor.getApp(F);if(!Q)return null;for(let e=0;e<Q.field_list.length;e++)if(Q.field_list[e].field_id==U)return Q.field_list[e];return null}async getFieldIdByNameSpace(F,U){const Q=await this.appProcessor.getApp(F);if(!Q)return null;for(let e=0;e<Q.field_list.length;e++)if(Q.field_list[e].name_space==U)return Q.field_list[e].field_id;return null}async getFieldModels(F){const U=await this.appProcessor.getApp(F);return U?U.field_list:null}async updateField(F,U){if(!F||!U)return;const Q=await this.updatedFieldApi(F,U);return this.updateFieldInStorage(F,Q)}async deleteField(F,U){return await this.deleteFieldApi(U),this.deleteFieldInStorage(F,U)}async getFieldValue(F,U,Q){let e=null;const B=await this.appProcessor.getApp(F);try{e=B.items_object[U][Q].field_value}catch{}return e}async setFieldValue(F,U,Q,e){if(!(!F||!U||!Q))return await this.setFieldValueApi(F,U,Q,e),this.updateFieldValue(F,U,Q,e)}fieldListeners(){this.pipeService.onRoot("gh_value_get",{},async(F,U)=>{if(U.app_id&&U.item_id&&U.field_id){let Q=await this.getFieldValue(U.app_id,U.item_id,U.field_id);this.pipeService.emit("gh_value_get",U,Q)}}),this.pipeService.onRoot("gh_value_set",{},async(F,U)=>{U.item_id&&(this.setFieldValue(U.app_id,U.item_id,U.field_id,U.new_value),delete U.new_value)}),this.pipeService.onRoot("gh_model_get",{},async(F,U)=>{try{let Q=await this.getField(U.app_id,U.field_id);this.pipeService.emit("gh_model_get",U,Q)}catch(Q){console.log("Field model: ",Q)}}),this.pipeService.onRoot("gh_model_update",{},async(F,U)=>{let Q=await this.updateField(U.app_id,U.field_model);this.pipeService.emit("gh_model_update",{app_id:U.app_id,field_id:U.field_id},Q)}),this.pipeService.onRoot("gh_models_get",{},async(F,U)=>{let Q=await this.getFieldModels(U.app_id);this.pipeService.emit("gh_models_get",U,Q)}),this.pipeService.onRoot("gh_model_delete",{},async(F,U)=>{let Q=await this.deleteField(U.app_id,U.field_id);this.pipeService.emit("gh_model_delete",U,Q)})}}class FileManager{constructor(F,U,Q,e){this.storage=F,this.pipeService=U,this.req=Q,this.appProcessor=e}async uploadFileApi(F,U,Q){try{const e={"file-0":F,app_id:U,item_id:Q};return await this.req.post({url:"/file/formupload",form:e})}catch(e){return console.log(e),null}}async uploadFileFromStringApi(F){try{return await this.req.post({url:"/file/upload",form:{file:JSON.stringify(F)}})}catch(U){return console.log(U),null}}async updateFileFromStringApi(F,U,Q,e,B,t,n){try{const a={file_name:Q,extension:e,file_id:U,format:B,source:F,alt:t,title:n};return await this.req.post({url:"/file/update",form:{file:JSON.stringify(a)}})}catch(a){return console.log(a),null}}async duplicateFileApi(F){return this.req.post({url:"/api/new/file/duplicate",headers:{"Content-Type":"application/x-www-form-urlencoded"},form:{files:JSON.stringify(F)}})}async downloadFileFromString(F,U){if(await this.isFileExists(F,U)){let Q=await this.getFile(F,U),e=await this.req.get({url:Q.url+"?timestamp="+Q.last_update,externalResource:!0});return{file:Q,data:e,type:"file"}}else return!1}async duplicateFile(F){let U=await this.duplicateFileApi(F);return U.forEach(Q=>{this.addFileToStorage(Q.app_id,Q)}),U}async deleteFileApi(F){try{return await this.req.get({url:`/file/delete?file_id=${F}`})}catch(U){return console.log(U),null}}addFileToStorage(F,U){const Q=this.storage.getApp(F);Q&&(Q.file_list.push(U),this.storage.updateApp(Q),this.pipeService.emit("gh_file_upload",{app_id:F,item_id:U.item_id,file_id:U.file_id},U))}addFilesToStorage(F,U){const Q=this.storage.getApp(F);Q&&(Q.file_list.push(...U),this.storage.updateApp(Q),U.forEach(e=>{this.pipeService.emit("gh_file_upload",{app_id:F,item_id:e.item_id,file_id:e.file_id},e)}))}deleteFileFromStorage(F,U){const Q=this.storage.getApp(U);if(Q){let e;Q.file_list=Q.file_list.filter(B=>B.file_id!=F?!0:(e=B,!1)),this.storage.updateApp(Q),this.pipeService.emit("gh_file_delete",{file_id:F},e)}}updateFileInStorage(F,U,Q){const e=this.storage.getApp(U);e&&(e.file_list=e.file_list.map(B=>B.file_id==F?Q:B),this.storage.updateApp(e),this.pipeService.emit("gh_file_update",{file_id:F}))}async getFile(F,U){const Q=await this.appProcessor.getApp(F);return new Promise((e,B)=>{let t=Q.file_list.find(n=>n.file_id==U);e(t||"")})}async getFiles(F){let U=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];const Q=await this.appProcessor.getApp(F);return new Promise((e,B)=>{let t=Q.file_list.filter(n=>U.some(a=>a==n.file_id));e(t||"")})}async uploadFile(F,U,Q){const e=await this.uploadFileApi(F,U,Q);return this.addFileToStorage(U,e),e}async uploadFileFromString(F){const U=await this.uploadFileFromStringApi(F);return this.addFileToStorage(U.app_id,U),U}async updateFileFromString(F,U,Q,e,B,t,n){const a=await this.updateFileFromStringApi(F,U,Q,e,B,t,n);return this.updateFileInStorage(U,a.app_id,a),a}async deleteFile(F,U){return await this.deleteFileApi(F),this.deleteFileFromStorage(F,U),!0}async isFileExists(F,U){let Q=/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/;if(U){let e=await this.getFile(F,U);return e?Q.test(e.url):!1}else return!1}}class DocumentManager{constructor(F,U){this.req=F,this.pipeService=U}createDocument(F){return this.emitDocumentInsert(F),this.req.post({url:"/api/new/document/insert-one",headers:{"Content-Type":"application/x-www-form-urlencoded"},form:{document:JSON.stringify(F)}})}emitDocumentInsert(F){const U=typeof F.data=="string"?JSON.parse(F.data):F.data;this.pipeService.emit("gh_document_insert_one",{app_id:F.app_id,item_id:F.item_id,element_id:F.element_id},U)}getDocument(F){return this.req.post({url:"/api/new/document/find-one",headers:{"Content-Type":"application/x-www-form-urlencoded"},form:{document:JSON.stringify(F)}})}getDocuments(F){return this.req.post({url:"/api/new/document/find",headers:{"Content-Type":"application/x-www-form-urlencoded"},form:{document:JSON.stringify(F)}})}deleteDocument(F){return this.req.post({url:"/api/new/document/remove-one",headers:{"Content-Type":"application/x-www-form-urlencoded"},form:{document:JSON.stringify(F)}})}}class Interpritate{constructor(F){this.gudhub=F}async getInterpretationObj(F,U,Q,e,B,t){var n=[],a=U.data_model.interpretation.find(function(r){return r.src==Q})||U.data_model.interpretation.find(function(r){return r.src=="table"})||{id:"default"},i=a;if(F.data_model&&F.data_model.interpretation){for(var L=0;L<F.data_model.interpretation.length;L++)(F.data_model.interpretation[L].src==Q||F.data_model.interpretation[L].src==e)&&n.push(F.data_model.interpretation[L]);for(var L=0;L<n.length;L++)if(n[L].settings&&n[L].settings.condition_filter&&n[L].settings.filters_list.length>0){const R=await gudhub.getItem(t,B);if(R&&gudhub.filter([R],n[L].settings.filters_list).length>0){i=n[L];break}}else i=gudhub.mergeObjects(i,n[L])}return i}getInterpretation(F,U,Q,e,B,t,n){const a=this;return new Promise(async(i,L)=>{var r=U&&U.data_type?U.data_type:Q;r?gudhub.ghconstructor.getInstance(r).then(async function(R){if(R){var V=await a.getInterpretationObj(U,R.getTemplate().model,e,n,B,t);R.getInterpretation(F,V.id,r,U,B,t).then(function(x){i(gudhub.mergeObjects(x,V))},function(x){L()})}},function(R){}):console.error("Get Interpretation: data_type is undefined",Q,U)})}async getInterpretationById(F,U,Q,e){let B=arguments.length>4&&arguments[4]!==void 0?arguments[4]:null,t=arguments.length>5&&arguments[5]!==void 0?arguments[5]:null,n=B??await this.gudhub.getFieldValue(F,U,Q),a=t??await this.gudhub.getField(F,Q);if(a==null)return"";const L=await(await this.gudhub.ghconstructor.getInstance(a.data_type)).getInterpretation(n,e,a.data_type,a,U,F);return L.html=="<span>no interpretation</span>"?n:L.html}}function WebsocketHandler(s,F){switch(F.api){case"/items/update":console.log("/items/update - ",F),s.itemProcessor.updateItemsInStorage(F.app_id,F.response);break;case"/items/add":console.log("/items/add - ",F),s.itemProcessor.addItemsToStorage(F.app_id,F.response);break;case"/items/delete":console.log("/items/delete - ",F),s.itemProcessor.deleteItemsFromStorage(F.app_id,F.response);break;case"/app/update":console.log("/app/update - ",F),s.appProcessor.updateAppFieldsAndViews(F.response);break;case"/file/delete":console.log("file/delete - ",F),s.fileManager.deleteFileFromStorage(F.response.file_id,F.app_id);break;case"/file/upload":console.log("file/upload - ",F),s.fileManager.addFileToStorage(F.app_id,F.response);break;case"/file/formupload":console.log("file/formupload - ",F);break;case"/file/update":s.fileManager.updateFileInStorage(F.response.file_id,F.response.app_id,F.response),console.log("file/update - ",F);break;case"/new/file/duplicate":s.fileManager.addFilesToStorage(F.app_id,F.response),console.log("new/file/duplicate - ",F);break;case"/api/new/document/insert-one":s.documentManager.emitDocumentInsert(F.response),console.log("/api/new/document/insert-one - ",F);break;case"/ws/emit-to-user":console.log("/ws/emit-to-user - ",F);break;case"/ws/broadcast-to-app-subscribers":console.log("/ws/broadcast-to-app-subscribers - ",F);const U=JSON.parse(F.response);if(!U.data_type)return;s.ghconstructor.getInstance(U.data_type).then(Q=>{Q.onMessage(F.app_id,F.user_id,U)});break;default:console.warn("WEBSOCKETS is not process this API:",F.api)}}class GroupManager{constructor(F,U){this.req=U,this.gudhub=F}async createGroupApi(F){try{const U={token:await this.gudhub.auth.getToken(),group_name:F};return await this.req.post({url:"/api/sharing-group/create-group",form:U})}catch(U){return console.log(U),null}}async updateGroupApi(F,U){try{const Q={token:await this.gudhub.auth.getToken(),group_name:U,group_id:F};return await this.req.post({url:"/api/sharing-group/update-group",form:Q})}catch(Q){return console.log(Q),null}}async deleteGroupApi(F){try{const U={token:await this.gudhub.auth.getToken(),group_id:F};return await this.req.post({url:"/api/sharing-group/delete-group",form:U})}catch(U){return console.log(U),null}}async addUserToGroupApi(F,U,Q){try{const e={token:await this.gudhub.auth.getToken(),group_id:F,user_id:U,group_permission:Q};return await this.req.post({url:"/api/sharing-group/add-user-to-group",form:e})}catch(e){return console.log(e),null}}async getUsersByGroupApi(F){try{const U={token:await this.gudhub.auth.getToken(),group_id:F};return await this.req.post({url:"/api/sharing-group/get-users-by-group",form:U})}catch(U){return console.log(U),null}}async updateUserInGroupApi(F,U,Q){try{const e={token:await this.gudhub.auth.getToken(),user_id:F,group_id:U,group_permission:Q};return await this.req.post({url:"/api/sharing-group/update-user-in-group",form:e})}catch(e){return console.log(e),null}}async deleteUserFromGroupApi(F,U){try{const Q={token:await this.gudhub.auth.getToken(),user_id:F,group_id:U};return await this.req.post({url:"/api/sharing-group/delete-user-from-group",form:Q})}catch(Q){return console.log(Q),null}}async getGroupsByUserApi(F){try{const U={token:await this.gudhub.auth.getToken(),user_id:F};return await this.req.post({url:"/api/sharing-group/get-groups-by-user",form:U})}catch(U){return console.log(U),null}}}class AppGroupSharing{constructor(F,U){this.req=U,this.gudhub=F}async addAppToGroupApi(F,U,Q){try{const e={token:await this.gudhub.auth.getToken(),app_id:F,group_id:U,app_permission:Q};return await this.req.post({url:"/api/sharing-group/add-app-to-group",form:e})}catch(e){return console.log(e),null}}async getAppsByGroupApi(F){try{const U={token:await this.gudhub.auth.getToken(),group_id:F};return await this.req.post({url:"/api/sharing-group/get-apps-by-group",form:U})}catch(U){return console.log(U),null}}async updateAppInGroupApi(F,U,Q){try{const e={token:await this.gudhub.auth.getToken(),group_id:U,app_id:F,app_permission:Q};return await this.req.post({url:"/api/sharing-group/update-app-in-group",form:e})}catch(e){return console.log(e),null}}async deleteAppFromGroupApi(F,U,Q){try{const e={token:await this.gudhub.auth.getToken(),group_id:U,app_id:F,app_permission:Q};return await this.req.post({url:"/api/sharing-group/delete-app-from-group",form:e})}catch(e){return console.log(e),null}}async getGroupsByAppApi(F){try{const U={token:await this.gudhub.auth.getToken(),app_id:F};return await this.req.post({url:"/api/sharing-group/get-groups-by-app",form:U})}catch(U){return console.log(U),null}}}class GroupSharing{constructor(F,U,Q){this.req=U,this.gudhub=F,this.pipeService=Q,this.groupManager=new GroupManager(F,U),this.appGroupSharing=new AppGroupSharing(F,U)}createGroup(F){return this.groupManager.createGroupApi(F)}updateGroup(F,U){return this.groupManager.updateGroupApi(F,U)}deleteGroup(F){return this.groupManager.deleteGroupApi(F)}async addUserToGroup(F,U,Q){let e=await this.groupManager.addUserToGroupApi(F,U,Q);return this.pipeService.emit("group_members_add",{app_id:"group_sharing"},e),e}getUsersByGroup(F){return this.groupManager.getUsersByGroupApi(F)}async updateUserInGroup(F,U,Q){let e=await this.groupManager.updateUserInGroupApi(F,U,Q);return this.pipeService.emit("group_members_update",{app_id:"group_sharing"},e),e}async deleteUserFromGroup(F,U){let Q=await this.groupManager.deleteUserFromGroupApi(F,U);return this.pipeService.emit("group_members_delete",{app_id:"group_sharing"},Q),Q}getGroupsByUser(F){return this.groupManager.getGroupsByUserApi(F)}addAppToGroup(F,U,Q){return this.appGroupSharing.addAppToGroupApi(F,U,Q)}getAppsByGroup(F){return this.appGroupSharing.getAppsByGroupApi(F)}updateAppInGroup(F,U,Q){return this.appGroupSharing.updateAppInGroupApi(F,U,Q)}deleteAppFromGroup(F,U,Q){return this.appGroupSharing.deleteAppFromGroupApi(F,U,Q)}getGroupsByApp(F){return this.appGroupSharing.getGroupsByAppApi(F)}}class Sharing{constructor(F,U){this.req=U,this.gudhub=F}async add(F,U,Q){try{const e={token:await this.gudhub.auth.getToken(),app_id:F,user_id:U,sharing_permission:Q};return await this.req.post({url:"/sharing/add",form:e})}catch(e){return console.log(e),null}}async update(F,U,Q){try{const e={token:await this.gudhub.auth.getToken(),app_id:F,user_id:U,sharing_permission:Q};return await this.req.post({url:"/sharing/update",form:e})}catch(e){return console.log(e),null}}async delete(F,U){try{const Q={token:await this.gudhub.auth.getToken(),app_id:F,user_id:U};return await this.req.post({url:"/sharing/delete",form:Q})}catch(Q){return console.log(Q),null}}async getAppUsers(F){try{const U={token:await this.gudhub.auth.getToken(),app_id:F};return await this.req.post({url:"/sharing/get-app-users",form:U})}catch(U){return console.log(U),null}}async addInvitation(F,U){try{const Q={token:await this.gudhub.auth.getToken(),guests_emails:F,apps:U};return await this.req.post({url:"/api/invitation/add",form:Q})}catch(Q){return console.log(Q),null}}}class WebSocketEmitter{constructor(F){this.gudhub=F}async emitToUser(F,U){const Q={user_id:F,data:typeof U=="object"?JSON.stringify(U):U};return await this.gudhub.req.post({url:"/ws/emit-to-user",form:Q})}async broadcastToAppSubscribers(F,U,Q){const e={app_id:F,data:JSON.stringify({data_type:U,data:Q})};return await this.gudhub.req.post({url:"/ws/broadcast-to-app-subscribers",form:e})}}class DataService{}let AppDataService$1=class extends DataService{constructor(F,U,Q){super(),this.chunkDataService=new ChunkDataService(F,chunkDataServiceConf,Q),this.gudhub=Q}isWithCache(){return!1}async processRequestedApp(F,U){if(!this.isWithCache()){let Q=await this.chunkDataService.getMergedChunkForIDList(F,U.chunks);return Q&&(U.items_list=await this.gudhub.util.mergeChunks([Q,U])),U}return U}};class AppAPI{constructor(F){this.req=F}async getApp(F){return this.req.get({url:"/api/app/get",params:{app_id:F}})}}let objectAssignWithOverride=function(s){for(var F=arguments.length,U=new Array(F>1?F-1:0),Q=1;Q<F;Q++)U[Q-1]=arguments[Q];for(let e of U)if(e)for(let B of Object.keys(e)){const t=Object.getOwnPropertyDescriptor(e,B);t.enumerable&&Object.defineProperty(s,B,t)}};class HttpService{}class AppHttpService extends AppDataService$1{constructor(F,U,Q){super(F,U,Q),this.appApi=new AppAPI(F);let e=new HttpService(U);objectAssignWithOverride(this,e)}async getApp(F){let U=await this.appApi.getApp(F);return this.processRequestedApp(F,U)}async getAppWithoutProcessing(F){return this.appApi.getApp(F)}async putApp(F,U){}static[Symbol.hasInstance](F){try{return F instanceof AppHttpService||F instanceof HttpService}catch{return!1}}}let ChunkDataService$1=class extends DataService{getMergedChunkForIDList(F){}isWithCache(){return!1}};class ChunkAPI{constructor(F){this.req=F}async getChunk(F,U){return this.req.axiosRequest({url:`${this.req.root}/api/get-items-chunk/${F}/${U}`,method:"GET"})}async getLastChunk(F){return this.req.axiosRequest({url:`${this.req.root}/api/get-last-items-chunk/${F}`,method:"GET"})}}class ChunkHttpService extends ChunkDataService$1{constructor(F,U){super(),this.chunkApi=new ChunkAPI(F);let Q=new HttpService(U);objectAssignWithOverride(this,Q)}async getChunk(F,U){return this.chunkApi.getChunk(F,U)}async getChunksForId(F){return[]}getCachedMergedChunk(F,U){}getMergedChunkForIDList(F,U){}putChunk(){}static[Symbol.hasInstance](F){try{return F instanceof ChunkHttpService||F instanceof HttpService}catch{return!1}}}const appsConf={store:"apps"},chunksConf={store:"chunks"},dbName="gudhub",chunksMergeConf={store:"chunksMergeCache"};class StoreBackend{}class IndexedDBManager extends StoreBackend{constructor(F,U){if(super(),IndexedDBManager.dbNameToInstanceMap||(IndexedDBManager.dbNameToInstanceMap=new Map),IndexedDBManager.dbNameToInstanceMap.has(F))return IndexedDBManager.dbNameToInstanceMap.get(F);this.db=null,this.dbName=F,this.storeNameList=U,IndexedDBManager.dbNameToInstanceMap.set(F,this)}async checkAndCreateStore(F){const Q=(await indexedDB.databases()).find(t=>t.name===this.dbName);let e=!1,B=this;return Q&&(e=await new Promise((t,n)=>{const a=indexedDB.open(B.dbName);a.onsuccess=function(i){const L=i.target.result,r=L.objectStoreNames.contains(F);L.close(),t(r)},a.onerror=function(i){n(i.target.error)}})),e?!0:new Promise((t,n)=>{const a=indexedDB.open(B.dbName,Q?Q.version+1:1);a.onupgradeneeded=function(i){const L=i.target.result;L.objectStoreNames.contains(F)||L.createObjectStore(F)},a.onsuccess=function(i){i.target.result.close(),t()},a.onerror=n})}async openDB(){if(this.db)return this.db;let F,U,Q=new Promise((t,n)=>{F=t,U=n});for(let t of this.storeNameList)await this.checkAndCreateStore(t);let e=this;const B=indexedDB.open(this.dbName);return B.onsuccess=t=>{e.db=t.target.result,F(this.db)},B.onerror=U,Q}async executeOperation(F,U){let Q=await this.openDB();return new Promise((e,B)=>{const t=Q.transaction(F,"readwrite"),n=t.objectStore(F);t.oncomplete=()=>e(),t.onerror=a=>B(`Transaction failed: ${a.target.error}`);try{U(n)}catch(a){B(`Operation failed: ${a.message}`)}})}}const indexedDBStoreBackendSingleton=new IndexedDBManager(dbName,[appsConf.store,chunksConf.store,chunksMergeConf.store]);class BaseStoreManager{constructor(F,U){this.storeBackend=F,this.storeName=U}async addItem(F,U){return new Promise(async(Q,e)=>{this.storeBackend.executeOperation(this.storeName,B=>{const t=B.add(U,F);t.onsuccess=Q,t.onerror=e})})}async putItem(F,U){return new Promise(async(Q,e)=>{this.storeBackend.executeOperation(this.storeName,B=>{const t=B.put(U,F);t.onsuccess=Q,t.onerror=e})})}async hasItem(F){try{return!!await this.getItem(F)}catch{return!1}}async getItem(F){return new Promise(async(U,Q)=>{this.storeBackend.executeOperation(this.storeName,e=>{const B=e.get(F);B.onsuccess=()=>{const t=B.result;U(t)},B.onerror=Q})})}async updateItem(F,U){return new Promise(async(Q,e)=>{this.storeBackend.executeOperation(this.storeName,B=>{const t=B.get(F);t.onsuccess=()=>{const n=t.result;Object.assign(n,U),B.put(n,F),Q()},t.onerror=e})})}async deleteItem(F){return new Promise(async(U,Q)=>{this.storeBackend.executeOperation(this.storeName,e=>{const B=e.delete(F);B.onsuccess=U,B.onerror=Q})})}}class AppStoreManager extends BaseStoreManager{constructor(){super(indexedDBStoreBackendSingleton,appsConf.store)}async getApp(F){return this.getItem(F)}async addApp(F,U){return this.addItem(F,U)}async putApp(F,U){return this.putItem(F,U)}async hasApp(F){return this.hasItem(F)}async deleteApp(F){return this.deleteItem(F)}}class MergedChunksStoreManager extends BaseStoreManager{constructor(){super(indexedDBStoreBackendSingleton,chunksMergeConf.store)}async get(F){return this.getItem(F)}async add(F,U){return this.addItem(F,U)}async put(F,U){return this.putItem(F,U)}async delete(F){return this.deleteItem(F)}}class IndexedDBChunkService extends ChunkDataService$1{constructor(F,U,Q){super(F,U),this.dataService=new ChunkHttpService(F),this.requestCache=new Map,this.gudhub=Q,this.storeManager=new MergedChunksStoreManager}static[Symbol.hasInstance](F){try{return F instanceof IndexedDBChunkService}catch{return!1}}async getCachedMergedChunk(F,U){try{return(await this.storeManager.get(F)).mergedData}catch{const e=U.map(n=>this.dataService.getChunk(F,n)),B=await Promise.all(e);let t=await this.gudhub.util.mergeChunks(B);return this.putMergedChunks(F,{hashes:U,mergedData:{items_list:t}}),{items_list:t}}}isWithCache(){return!0}async getMergedChunkForApp(F){}async getMergedChunkForIDList(F,U){try{let Q=!0,e=await this.storeManager.get(F);try{if(U.length<e.hashes.length)throw new Error;for(let a of e.hashes)U.indexOf(a)!=e.hashes.indexOf(a)&&(Q=!1)}catch{Q=!1}let B=[],t=[];if(U.length>e.hashes.length&&(B=U.slice(e.hashes.length)),Q||(B=U),B.length>0){const a=B.map(i=>this.dataService.getChunk(F,i));t=await Promise.all(a)}let n;return Q||(n=await this.gudhub.util.mergeChunks([...t])),Q&&(n=await this.gudhub.util.mergeChunks([e.mergedData,...t])),B.length>0&&this.putMergedChunks(F,{hashes:U,mergedData:{items_list:n}}),{items_list:n}}catch{const e=U.map(n=>this.dataService.getChunk(F,n)),B=await Promise.all(e);let t=await this.gudhub.util.mergeChunks(B);return this.putMergedChunks(F,{hashes:U,mergedData:{items_list:t}}),{items_list:t}}}async putMergedChunks(F,U){return this.storeManager.put(F,U)}}const jsContent=`(function(){"use strict";(()=>{let er,kt,Hr,tr;var Jr,re=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{};function L(n){return n&&n.__esModule?n.default:n}function Kr(n,e,t,r){Object.defineProperty(n,e,{get:t,set:r,enumerable:!0,configurable:!0})}var rr={},It={},I=re.parcelRequire94c2;I==null&&((I=function(n){if(n in rr)return rr[n].exports;if(n in It){var e=It[n];delete It[n];var t={id:n,exports:{}};return rr[n]=t,e.call(t.exports,t,t.exports),t.exports}var r=Error("Cannot find module '"+n+"'");throw r.code="MODULE_NOT_FOUND",r}).register=function(n,e){It[n]=e},re.parcelRequire94c2=I);var U=I.register;U("1ufAB",function(n,e){var t=I("iEaqd"),r=I("iNZzY"),a=I("2VbXH"),i=I("6Mx50");function c(s){var l=new a(s),p=r(a.prototype.request,l);return t.extend(p,a.prototype,l),t.extend(p,l),p}var o=c(I("bM4se"));o.Axios=a,o.create=function(s){return c(i(o.defaults,s))},o.Cancel=I("g2liO"),o.CancelToken=I("14PRn"),o.isCancel=I("8kGOw"),o.all=function(s){return Promise.all(s)},o.spread=I("i3hBo"),o.isAxiosError=I("dhYWP"),n.exports=o,n.exports.default=o}),U("iEaqd",function(n,e){var t=I("iNZzY"),r=Object.prototype.toString;function a(g){return r.call(g)==="[object Array]"}function i(g){return g===void 0}function c(g){return g!==null&&typeof g=="object"}function o(g){if(r.call(g)!=="[object Object]")return!1;var f=Object.getPrototypeOf(g);return f===null||f===Object.prototype}function s(g){return r.call(g)==="[object Function]"}function l(g){return c(g)&&s(g.pipe)}function p(g,f){if(g!=null)if(typeof g!="object"&&(g=[g]),a(g))for(var $=0,S=g.length;$<S;$++)f.call(null,g[$],$,g);else for(var w in g)Object.prototype.hasOwnProperty.call(g,w)&&f.call(null,g[w],w,g)}function h(){var g={};function f(w,y){o(g[y])&&o(w)?g[y]=h(g[y],w):o(w)?g[y]=h({},w):a(w)?g[y]=w.slice():g[y]=w}for(var $=0,S=arguments.length;$<S;$++)p(arguments[$],f);return g}function d(g,f,$){return p(f,function(S,w){$&&typeof S=="function"?g[w]=t(S,$):g[w]=S}),g}n.exports={isArray:a,isArrayBuffer:function(g){return r.call(g)==="[object ArrayBuffer]"},isBuffer:function(g){return g!==null&&!i(g)&&g.constructor!==null&&!i(g.constructor)&&typeof g.constructor.isBuffer=="function"&&g.constructor.isBuffer(g)},isFormData:function(g){return typeof FormData<"u"&&g instanceof FormData},isArrayBufferView:function(g){return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?ArrayBuffer.isView(g):g&&g.buffer&&g.buffer instanceof ArrayBuffer},isString:function(g){return typeof g=="string"},isNumber:function(g){return typeof g=="number"},isObject:c,isPlainObject:o,isUndefined:i,isDate:function(g){return r.call(g)==="[object Date]"},isFile:function(g){return r.call(g)==="[object File]"},isBlob:function(g){return r.call(g)==="[object Blob]"},isFunction:s,isStream:l,isURLSearchParams:function(g){return typeof URLSearchParams<"u"&&g instanceof URLSearchParams},isStandardBrowserEnv:function(){return(typeof navigator>"u"||navigator.product!=="ReactNative"&&navigator.product!=="NativeScript"&&navigator.product!=="NS")&&typeof window<"u"&&typeof document<"u"},forEach:p,merge:h,extend:d,trim:function(g){return g.trim?g.trim():g.replace(/^\\s+|\\s+$/g,"")},stripBOM:function(g){return g.charCodeAt(0)===65279&&(g=g.slice(1)),g}}}),U("iNZzY",function(n,e){n.exports=function(t,r){return function(){for(var a=Array(arguments.length),i=0;i<a.length;i++)a[i]=arguments[i];return t.apply(r,a)}}}),U("2VbXH",function(n,e){var t=I("iEaqd"),r=I("gWG2h"),a=I("4m3Da"),i=I("d4try"),c=I("6Mx50"),o=I("hiYAY"),s=o.validators;function l(p){this.defaults=p,this.interceptors={request:new a,response:new a}}l.prototype.request=function(p){typeof p=="string"?(p=arguments[1]||{},p.url=arguments[0]):p=p||{},(p=c(this.defaults,p)).method?p.method=p.method.toLowerCase():this.defaults.method?p.method=this.defaults.method.toLowerCase():p.method="get";var h,d=p.transitional;d!==void 0&&o.assertOptions(d,{silentJSONParsing:s.transitional(s.boolean,"1.0.0"),forcedJSONParsing:s.transitional(s.boolean,"1.0.0"),clarifyTimeoutError:s.transitional(s.boolean,"1.0.0")},!1);var g=[],f=!0;this.interceptors.request.forEach(function(v){(typeof v.runWhen!="function"||v.runWhen(p)!==!1)&&(f=f&&v.synchronous,g.unshift(v.fulfilled,v.rejected))});var $=[];if(this.interceptors.response.forEach(function(v){$.push(v.fulfilled,v.rejected)}),!f){var S=[i,void 0];for(Array.prototype.unshift.apply(S,g),S=S.concat($),h=Promise.resolve(p);S.length;)h=h.then(S.shift(),S.shift());return h}for(var w=p;g.length;){var y=g.shift(),_=g.shift();try{w=y(w)}catch(v){_(v);break}}try{h=i(w)}catch(v){return Promise.reject(v)}for(;$.length;)h=h.then($.shift(),$.shift());return h},l.prototype.getUri=function(p){return r((p=c(this.defaults,p)).url,p.params,p.paramsSerializer).replace(/^\\?/,"")},t.forEach(["delete","get","head","options"],function(p){l.prototype[p]=function(h,d){return this.request(c(d||{},{method:p,url:h,data:(d||{}).data}))}}),t.forEach(["post","put","patch"],function(p){l.prototype[p]=function(h,d,g){return this.request(c(g||{},{method:p,url:h,data:d}))}}),n.exports=l}),U("gWG2h",function(n,e){var t=I("iEaqd");function r(a){return encodeURIComponent(a).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}n.exports=function(a,i,c){if(!i)return a;if(c)o=c(i);else if(t.isURLSearchParams(i))o=i.toString();else{var o,s=[];t.forEach(i,function(p,h){p!=null&&(t.isArray(p)?h+="[]":p=[p],t.forEach(p,function(d){t.isDate(d)?d=d.toISOString():t.isObject(d)&&(d=JSON.stringify(d)),s.push(r(h)+"="+r(d))}))}),o=s.join("&")}if(o){var l=a.indexOf("#");l!==-1&&(a=a.slice(0,l)),a+=(a.indexOf("?")===-1?"?":"&")+o}return a}}),U("4m3Da",function(n,e){var t=I("iEaqd");function r(){this.handlers=[]}r.prototype.use=function(a,i,c){return this.handlers.push({fulfilled:a,rejected:i,synchronous:!!c&&c.synchronous,runWhen:c?c.runWhen:null}),this.handlers.length-1},r.prototype.eject=function(a){this.handlers[a]&&(this.handlers[a]=null)},r.prototype.forEach=function(a){t.forEach(this.handlers,function(i){i!==null&&a(i)})},n.exports=r}),U("d4try",function(n,e){var t=I("iEaqd"),r=I("gu59S"),a=I("8kGOw"),i=I("bM4se");function c(o){o.cancelToken&&o.cancelToken.throwIfRequested()}n.exports=function(o){return c(o),o.headers=o.headers||{},o.data=r.call(o,o.data,o.headers,o.transformRequest),o.headers=t.merge(o.headers.common||{},o.headers[o.method]||{},o.headers),t.forEach(["delete","get","head","post","put","patch","common"],function(s){delete o.headers[s]}),(o.adapter||i.adapter)(o).then(function(s){return c(o),s.data=r.call(o,s.data,s.headers,o.transformResponse),s},function(s){return!a(s)&&(c(o),s&&s.response&&(s.response.data=r.call(o,s.response.data,s.response.headers,o.transformResponse))),Promise.reject(s)})}}),U("gu59S",function(n,e){var t=I("iEaqd"),r=I("bM4se");n.exports=function(a,i,c){var o=this||r;return t.forEach(c,function(s){a=s.call(o,a,i)}),a}}),U("bM4se",function(n,e){var t=I("2dKjk"),r=I("iEaqd"),a=I("4xE2z"),i=I("9na6w"),c={"Content-Type":"application/x-www-form-urlencoded"};function o(p,h){!r.isUndefined(p)&&r.isUndefined(p["Content-Type"])&&(p["Content-Type"]=h)}function s(p,h,d){if(r.isString(p))try{return(h||JSON.parse)(p),r.trim(p)}catch(g){if(g.name!=="SyntaxError")throw g}return(d||JSON.stringify)(p)}var l={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:function(){var p;return(typeof XMLHttpRequest<"u"||t!==void 0&&Object.prototype.toString.call(t)==="[object process]")&&(p=I("kHaX1")),p}(),transformRequest:[function(p,h){return a(h,"Accept"),a(h,"Content-Type"),r.isFormData(p)||r.isArrayBuffer(p)||r.isBuffer(p)||r.isStream(p)||r.isFile(p)||r.isBlob(p)?p:r.isArrayBufferView(p)?p.buffer:r.isURLSearchParams(p)?(o(h,"application/x-www-form-urlencoded;charset=utf-8"),p.toString()):r.isObject(p)||h&&h["Content-Type"]==="application/json"?(o(h,"application/json"),s(p)):p}],transformResponse:[function(p){var h=this.transitional,d=h&&h.silentJSONParsing,g=h&&h.forcedJSONParsing,f=!d&&this.responseType==="json";if(f||g&&r.isString(p)&&p.length)try{return JSON.parse(p)}catch($){if(f)throw $.name==="SyntaxError"?i($,this,"E_JSON_PARSE"):$}return p}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(p){return p>=200&&p<300}};l.headers={common:{Accept:"application/json, text/plain, */*"}},r.forEach(["delete","get","head"],function(p){l.headers[p]={}}),r.forEach(["post","put","patch"],function(p){l.headers[p]=r.merge(c)}),n.exports=l}),U("2dKjk",function(n,e){var t,r,a,i=n.exports={};function c(){throw Error("setTimeout has not been defined")}function o(){throw Error("clearTimeout has not been defined")}function s(w){if(t===setTimeout)return setTimeout(w,0);if((t===c||!t)&&setTimeout)return t=setTimeout,setTimeout(w,0);try{return t(w,0)}catch{try{return t.call(null,w,0)}catch{return t.call(this,w,0)}}}function l(w){if(r===clearTimeout)return clearTimeout(w);if((r===o||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(w);try{return r(w)}catch{try{return r.call(null,w)}catch{return r.call(this,w)}}}(function(){try{t=typeof setTimeout=="function"?setTimeout:c}catch{t=c}try{r=typeof clearTimeout=="function"?clearTimeout:o}catch{r=o}})();var p=[],h=!1,d=-1;function g(){h&&a&&(h=!1,a.length?p=a.concat(p):d=-1,p.length&&f())}function f(){if(!h){var w=s(g);h=!0;for(var y=p.length;y;){for(a=p,p=[];++d<y;)a&&a[d].run();d=-1,y=p.length}a=null,h=!1,l(w)}}function $(w,y){this.fun=w,this.array=y}function S(){}i.nextTick=function(w){var y=Array(arguments.length-1);if(arguments.length>1)for(var _=1;_<arguments.length;_++)y[_-1]=arguments[_];p.push(new $(w,y)),p.length!==1||h||s(f)},$.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.browser=!0,i.env={},i.argv=[],i.version="",i.versions={},i.on=S,i.addListener=S,i.once=S,i.off=S,i.removeListener=S,i.removeAllListeners=S,i.emit=S,i.prependListener=S,i.prependOnceListener=S,i.listeners=function(w){return[]},i.binding=function(w){throw Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(w){throw Error("process.chdir is not supported")},i.umask=function(){return 0}}),U("4xE2z",function(n,e){var t=I("iEaqd");n.exports=function(r,a){t.forEach(r,function(i,c){c!==a&&c.toUpperCase()===a.toUpperCase()&&(r[a]=i,delete r[c])})}}),U("9na6w",function(n,e){n.exports=function(t,r,a,i,c){return t.config=r,a&&(t.code=a),t.request=i,t.response=c,t.isAxiosError=!0,t.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},t}}),U("kHaX1",function(n,e){var t=I("iEaqd"),r=I("hAgIk"),a=I("gIEx2"),i=I("gWG2h"),c=I("e3Yo9"),o=I("lo19V"),s=I("eg6xZ"),l=I("iUqaj");n.exports=function(p){return new Promise(function(h,d){var g=p.data,f=p.headers,$=p.responseType;t.isFormData(g)&&delete f["Content-Type"];var S=new XMLHttpRequest;p.auth&&(f.Authorization="Basic "+btoa((p.auth.username||"")+":"+(p.auth.password?unescape(encodeURIComponent(p.auth.password)):"")));var w=c(p.baseURL,p.url);function y(){if(S){var v="getAllResponseHeaders"in S?o(S.getAllResponseHeaders()):null,x=$&&$!=="text"&&$!=="json"?S.response:S.responseText,j={data:x,status:S.status,statusText:S.statusText,headers:v,config:p,request:S};r(h,d,j),S=null}}if(S.open(p.method.toUpperCase(),i(w,p.params,p.paramsSerializer),!0),S.timeout=p.timeout,"onloadend"in S?S.onloadend=y:S.onreadystatechange=function(){S&&S.readyState===4&&(S.status!==0||S.responseURL&&S.responseURL.indexOf("file:")===0)&&setTimeout(y)},S.onabort=function(){S&&(d(l("Request aborted",p,"ECONNABORTED",S)),S=null)},S.onerror=function(){d(l("Network Error",p,null,S)),S=null},S.ontimeout=function(){var v="timeout of "+p.timeout+"ms exceeded";p.timeoutErrorMessage&&(v=p.timeoutErrorMessage),d(l(v,p,p.transitional&&p.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",S)),S=null},t.isStandardBrowserEnv()){var _=(p.withCredentials||s(w))&&p.xsrfCookieName?a.read(p.xsrfCookieName):void 0;_&&(f[p.xsrfHeaderName]=_)}"setRequestHeader"in S&&t.forEach(f,function(v,x){g===void 0&&x.toLowerCase()==="content-type"?delete f[x]:S.setRequestHeader(x,v)}),t.isUndefined(p.withCredentials)||(S.withCredentials=!!p.withCredentials),$&&$!=="json"&&(S.responseType=p.responseType),typeof p.onDownloadProgress=="function"&&S.addEventListener("progress",p.onDownloadProgress),typeof p.onUploadProgress=="function"&&S.upload&&S.upload.addEventListener("progress",p.onUploadProgress),p.cancelToken&&p.cancelToken.promise.then(function(v){S&&(S.abort(),d(v),S=null)}),g||(g=null),S.send(g)})}}),U("hAgIk",function(n,e){var t=I("iUqaj");n.exports=function(r,a,i){var c=i.config.validateStatus;!i.status||!c||c(i.status)?r(i):a(t("Request failed with status code "+i.status,i.config,null,i.request,i))}}),U("iUqaj",function(n,e){var t=I("9na6w");n.exports=function(r,a,i,c,o){return t(Error(r),a,i,c,o)}}),U("gIEx2",function(n,e){var t=I("iEaqd");n.exports=t.isStandardBrowserEnv()?function(){return{write:function(r,a,i,c,o,s){var l=[];l.push(r+"="+encodeURIComponent(a)),t.isNumber(i)&&l.push("expires="+new Date(i).toGMTString()),t.isString(c)&&l.push("path="+c),t.isString(o)&&l.push("domain="+o),s===!0&&l.push("secure"),document.cookie=l.join("; ")},read:function(r){var a=document.cookie.match(RegExp("(^|;\\\\s*)("+r+")=([^;]*)"));return a?decodeURIComponent(a[3]):null},remove:function(r){this.write(r,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()}),U("e3Yo9",function(n,e){var t=I("2rjk0"),r=I("5nGHC");n.exports=function(a,i){return a&&!t(i)?r(a,i):i}}),U("2rjk0",function(n,e){n.exports=function(t){return/^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(t)}}),U("5nGHC",function(n,e){n.exports=function(t,r){return r?t.replace(/\\/+$/,"")+"/"+r.replace(/^\\/+/,""):t}}),U("lo19V",function(n,e){var t=I("iEaqd"),r=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];n.exports=function(a){var i,c,o,s={};return a&&t.forEach(a.split(\`
|
|
99
|
+
\`),function(l){o=l.indexOf(":"),i=t.trim(l.substr(0,o)).toLowerCase(),c=t.trim(l.substr(o+1)),i&&!(s[i]&&r.indexOf(i)>=0)&&(i==="set-cookie"?s[i]=(s[i]?s[i]:[]).concat([c]):s[i]=s[i]?s[i]+", "+c:c)}),s}}),U("eg6xZ",function(n,e){var t=I("iEaqd");n.exports=t.isStandardBrowserEnv()?function(){var r,a=/(msie|trident)/i.test(navigator.userAgent),i=document.createElement("a");function c(o){var s=o;return a&&(i.setAttribute("href",s),s=i.href),i.setAttribute("href",s),{href:i.href,protocol:i.protocol?i.protocol.replace(/:$/,""):"",host:i.host,search:i.search?i.search.replace(/^\\?/,""):"",hash:i.hash?i.hash.replace(/^#/,""):"",hostname:i.hostname,port:i.port,pathname:i.pathname.charAt(0)==="/"?i.pathname:"/"+i.pathname}}return r=c(window.location.href),function(o){var s=t.isString(o)?c(o):o;return s.protocol===r.protocol&&s.host===r.host}}():function(){return function(){return!0}}()}),U("8kGOw",function(n,e){n.exports=function(t){return!!(t&&t.__CANCEL__)}}),U("6Mx50",function(n,e){var t=I("iEaqd");n.exports=function(r,a){a=a||{};var i={},c=["url","method","data"],o=["headers","auth","proxy","params"],s=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],l=["validateStatus"];function p(f,$){return t.isPlainObject(f)&&t.isPlainObject($)?t.merge(f,$):t.isPlainObject($)?t.merge({},$):t.isArray($)?$.slice():$}function h(f){t.isUndefined(a[f])?t.isUndefined(r[f])||(i[f]=p(void 0,r[f])):i[f]=p(r[f],a[f])}t.forEach(c,function(f){t.isUndefined(a[f])||(i[f]=p(void 0,a[f]))}),t.forEach(o,h),t.forEach(s,function(f){t.isUndefined(a[f])?t.isUndefined(r[f])||(i[f]=p(void 0,r[f])):i[f]=p(void 0,a[f])}),t.forEach(l,function(f){f in a?i[f]=p(r[f],a[f]):f in r&&(i[f]=p(void 0,r[f]))});var d=c.concat(o).concat(s).concat(l),g=Object.keys(r).concat(Object.keys(a)).filter(function(f){return d.indexOf(f)===-1});return t.forEach(g,h),i}}),U("hiYAY",function(n,e){var t=I("bTAft"),r={};["object","boolean","number","function","string","symbol"].forEach(function(o,s){r[o]=function(l){return typeof l===o||"a"+(s<1?"n ":" ")+o}});var a={},i=t.version.split(".");function c(o,s){for(var l=s?s.split("."):i,p=o.split("."),h=0;h<3;h++){if(l[h]>p[h])return!0;if(l[h]<p[h])break}return!1}r.transitional=function(o,s,l){var p=s&&c(s);function h(d,g){return"[Axios v"+t.version+"] Transitional option '"+d+"'"+g+(l?". "+l:"")}return function(d,g,f){if(o===!1)throw Error(h(g," has been removed in "+s));return p&&!a[g]&&(a[g]=!0,console.warn(h(g," has been deprecated since v"+s+" and will be removed in the near future"))),!o||o(d,g,f)}},n.exports={isOlderVersion:c,assertOptions:function(o,s,l){if(typeof o!="object")throw TypeError("options must be an object");for(var p=Object.keys(o),h=p.length;h-- >0;){var d=p[h],g=s[d];if(g){var f=o[d],$=f===void 0||g(f,d,o);if($!==!0)throw TypeError("option "+d+" must be "+$);continue}if(l!==!0)throw Error("Unknown option "+d)}},validators:r}}),U("bTAft",function(n,e){n.exports=JSON.parse('{"_args":[["axios@0.21.4","/home/vitaly/Documents/work/gudhubclient/override_npm/gudhub"]],"_from":"axios@0.21.4","_id":"axios@0.21.4","_inBundle":false,"_integrity":"sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==","_location":"/axios","_phantomChildren":{},"_requested":{"type":"version","registry":true,"raw":"axios@0.21.4","name":"axios","escapedName":"axios","rawSpec":"0.21.4","saveSpec":null,"fetchSpec":"0.21.4"},"_requiredBy":["/"],"_resolved":"https://registry.npmjs.org/axios/-/axios-0.21.4.tgz","_spec":"0.21.4","_where":"/home/vitaly/Documents/work/gudhubclient/override_npm/gudhub","author":{"name":"Matt Zabriskie"},"browser":{"./lib/adapters/http.js":"./lib/adapters/xhr.js"},"bugs":{"url":"https://github.com/axios/axios/issues"},"bundlesize":[{"path":"./dist/axios.min.js","threshold":"5kB"}],"dependencies":{"follow-redirects":"^1.14.0"},"description":"Promise based HTTP client for the browser and node.js","devDependencies":{"coveralls":"^3.0.0","es6-promise":"^4.2.4","grunt":"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1","karma":"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2","minimist":"^1.2.0","mocha":"^8.2.1","sinon":"^4.5.0","terser-webpack-plugin":"^4.2.3","typescript":"^4.0.5","url-search-params":"^0.10.0","webpack":"^4.44.2","webpack-dev-server":"^3.11.0"},"homepage":"https://axios-http.com","jsdelivr":"dist/axios.min.js","keywords":["xhr","http","ajax","promise","node"],"license":"MIT","main":"index.js","name":"axios","repository":{"type":"git","url":"git+https://github.com/axios/axios.git"},"scripts":{"build":"NODE_ENV=production grunt build","coveralls":"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","examples":"node ./examples/server.js","fix":"eslint --fix lib/**/*.js","postversion":"git push && git push --tags","preversion":"npm test","start":"node ./sandbox/server.js","test":"grunt test","version":"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json"},"typings":"./index.d.ts","unpkg":"dist/axios.min.js","version":"0.21.4"}')}),U("g2liO",function(n,e){function t(r){this.message=r}t.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},t.prototype.__CANCEL__=!0,n.exports=t}),U("14PRn",function(n,e){var t=I("g2liO");function r(a){if(typeof a!="function")throw TypeError("executor must be a function.");this.promise=new Promise(function(o){i=o});var i,c=this;a(function(o){c.reason||(c.reason=new t(o),i(c.reason))})}r.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},r.source=function(){var a;return{token:new r(function(i){a=i}),cancel:a}},n.exports=r}),U("i3hBo",function(n,e){n.exports=function(t){return function(r){return t.apply(null,r)}}}),U("dhYWP",function(n,e){n.exports=function(t){return typeof t=="object"&&t.isAxiosError===!0}}),U("kfIQl",function(n,e){var t=typeof Symbol<"u"&&Symbol,r=I("lyEFc");n.exports=function(){return typeof t=="function"&&typeof Symbol=="function"&&typeof t("foo")=="symbol"&&typeof Symbol("bar")=="symbol"&&r()}}),U("lyEFc",function(n,e){n.exports=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var t={},r=Symbol("test"),a=Object(r);if(typeof r=="string"||Object.prototype.toString.call(r)!=="[object Symbol]"||Object.prototype.toString.call(a)!=="[object Symbol]")return!1;var i=42;for(var c in t[r]=i,t)return!1;if(typeof Object.keys=="function"&&Object.keys(t).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(t).length!==0)return!1;var o=Object.getOwnPropertySymbols(t);if(o.length!==1||o[0]!==r||!Object.prototype.propertyIsEnumerable.call(t,r))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var s=Object.getOwnPropertyDescriptor(t,r);if(s.value!==i||s.enumerable!==!0)return!1}return!0}}),U("5ZWAZ",function(n,e){function t(r){return n.exports=t=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(a){return typeof a}:function(a){return a&&typeof Symbol=="function"&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},n.exports.__esModule=!0,n.exports.default=n.exports,t(r)}n.exports=t,n.exports.__esModule=!0,n.exports.default=n.exports}),U("fgq5y",function(n,e){var t=I("f3Ywx").default;Object.defineProperty(n.exports,"__esModule",{value:!0}),n.exports.default=c;var r=t(I("a9VQw")),a=t(I("glRwo")),i=t(I("ayR3G"));function c(o,s){(0,i.default)(2,arguments);var l=(0,a.default)(o),p=(0,r.default)(s);return isNaN(p)?new Date(NaN):(p&&l.setDate(l.getDate()+p),l)}n.exports=n.exports.default}),U("f3Ywx",function(n,e){n.exports=function(t){return t&&t.__esModule?t:{default:t}},n.exports.__esModule=!0,n.exports.default=n.exports}),U("a9VQw",function(n,e){function t(r){if(r===null||r===!0||r===!1)return NaN;var a=Number(r);return isNaN(a)?a:a<0?Math.ceil(a):Math.floor(a)}Object.defineProperty(n.exports,"__esModule",{value:!0}),n.exports.default=t,n.exports=n.exports.default}),U("glRwo",function(n,e){var t=I("f3Ywx").default;Object.defineProperty(n.exports,"__esModule",{value:!0}),n.exports.default=i;var r=t(I("5ZWAZ")),a=t(I("ayR3G"));function i(c){(0,a.default)(1,arguments);var o=Object.prototype.toString.call(c);return c instanceof Date||(0,r.default)(c)==="object"&&o==="[object Date]"?new Date(c.getTime()):typeof c=="number"||o==="[object Number]"?new Date(c):((typeof c=="string"||o==="[object String]")&&typeof console<"u"&&(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use \`parseISO\` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(Error().stack)),new Date(NaN))}n.exports=n.exports.default}),U("ayR3G",function(n,e){function t(r,a){if(a.length<r)throw TypeError(r+" argument"+(r>1?"s":"")+" required, but only "+a.length+" present")}Object.defineProperty(n.exports,"__esModule",{value:!0}),n.exports.default=t,n.exports=n.exports.default}),U("byyO9",function(n,e){var t=I("f3Ywx").default;Object.defineProperty(n.exports,"__esModule",{value:!0}),n.exports.default=c;var r=t(I("a9VQw")),a=t(I("glRwo")),i=t(I("ayR3G"));function c(o,s){(0,i.default)(2,arguments);var l=(0,a.default)(o),p=(0,r.default)(s);if(isNaN(p))return new Date(NaN);if(!p)return l;var h=l.getDate(),d=new Date(l.getTime());return d.setMonth(l.getMonth()+p+1,0),h>=d.getDate()?d:(l.setFullYear(d.getFullYear(),d.getMonth(),h),l)}n.exports=n.exports.default}),U("hLz6R",function(n,e){var t=I("f3Ywx").default;Object.defineProperty(n.exports,"__esModule",{value:!0}),n.exports.default=o;var r=t(I("glRwo")),a=t(I("a9VQw")),i=t(I("ayR3G")),c=I("lmyOi");function o(s,l){(0,i.default)(1,arguments);var p,h,d,g,f,$,S,w,y=(0,c.getDefaultOptions)(),_=(0,a.default)((p=(h=(d=(g=l==null?void 0:l.weekStartsOn)!==null&&g!==void 0?g:l==null||(f=l.locale)===null||f===void 0||($=f.options)===null||$===void 0?void 0:$.weekStartsOn)!==null&&d!==void 0?d:y.weekStartsOn)!==null&&h!==void 0?h:(S=y.locale)===null||S===void 0||(w=S.options)===null||w===void 0?void 0:w.weekStartsOn)!==null&&p!==void 0?p:0);if(!(_>=0&&_<=6))throw RangeError("weekStartsOn must be between 0 and 6 inclusively");var v=(0,r.default)(s),x=v.getDay(),j=7*(x<_)+x-_;return v.setDate(v.getDate()-j),v.setHours(0,0,0,0),v}n.exports=n.exports.default}),U("lmyOi",function(n,e){Object.defineProperty(n.exports,"__esModule",{value:!0}),n.exports.getDefaultOptions=r,n.exports.setDefaultOptions=a;var t={};function r(){return t}function a(i){t=i}}),U("kmcAT",function(n,e){I("akXK4"),I("5xozB")}),U("akXK4",function(n,e){n.exports=I("1ufAB")}),U("5xozB",function(n,e){Kr(n.exports,"IS_BROWSER_MAIN_THREAD",()=>r),Kr(n.exports,"IS_BROWSER",()=>i);var t=I("2dKjk");let r=typeof window<"u"&&typeof document<"u",a=typeof self=="object"&&typeof WorkerGlobalScope<"u",i=r||a;t!==void 0&&t.versions!=null&&t.versions.node});var de=I("5xozB");let Ja="https://gudhub.com/GudHub_Test",Ka="wss://gudhub.com/GudHub/ws/app/",Qa="https://gudhub.com/api/services/prod",Ya="build/latest/async_modules_node/",Xa="build/latest/automation_modules/",Za="https://gudhub.com",Qr=!0,Yr=!1,Xe=!0;de.IS_BROWSER||(Xe=!1);var de=I("5xozB");class Xr{}class Ot extends Xr{constructor(e,t,r){super(),this.chunkDataService=new kt(e,tr,r),this.gudhub=r}isWithCache(){return!1}async processRequestedApp(e,t){if(!this.isWithCache()){let r=await this.chunkDataService.getMergedChunkForIDList(e,t.chunks);r&&(t.items_list=await this.gudhub.util.mergeChunks([r,t]))}return t}}class ei{constructor(e){this.req=e}async getApp(e){return this.req.get({url:"/api/app/get",params:{app_id:e}})}}let Zr=(n,...e)=>{for(let t of e)if(t)for(let r of Object.keys(t)){let a=Object.getOwnPropertyDescriptor(t,r);a.enumerable&&Object.defineProperty(n,r,a)}};class jt{}class Ze extends Ot{constructor(e,t,r){super(e,t,r),this.appApi=new ei(e),Zr(this,new jt(t))}async getApp(e){let t=await this.appApi.getApp(e);return this.processRequestedApp(e,t)}async getAppWithoutProcessing(e){return this.appApi.getApp(e)}async putApp(e,t){}static[Symbol.hasInstance](e){try{return e instanceof Ze||e instanceof jt}catch{return!1}}}class en extends Xr{getMergedChunkForIDList(e){}isWithCache(){return!1}}class ti{constructor(e){this.req=e}async getChunk(e,t){return this.req.axiosRequest({url:\`\${this.req.root}/api/get-items-chunk/\${e}/\${t}\`,method:"GET"})}async getLastChunk(e){return this.req.axiosRequest({url:\`\${this.req.root}/api/get-last-items-chunk/\${e}\`,method:"GET"})}}class Tt extends en{constructor(e,t){super(),this.chunkApi=new ti(e),Zr(this,new jt(t))}async getChunk(e,t){return this.chunkApi.getChunk(e,t)}async getChunksForId(e){return[]}getCachedMergedChunk(e,t){}getMergedChunkForIDList(e,t){}putChunk(){}static[Symbol.hasInstance](e){try{return e instanceof Tt||e instanceof jt}catch{return!1}}}let dt={store:"apps"},nr={store:"chunks"},ri="gudhub",ar={store:"chunksMergeCache"};class ni{}class We extends ni{constructor(e,t){if(super(),We.dbNameToInstanceMap||(We.dbNameToInstanceMap=new Map),We.dbNameToInstanceMap.has(e))return We.dbNameToInstanceMap.get(e);this.db=null,this.dbName=e,this.storeNameList=t,We.dbNameToInstanceMap.set(e,this)}async checkAndCreateStore(e){let t=(await indexedDB.databases()).find(i=>i.name===this.dbName),r=!1,a=this;return t&&(r=await new Promise((i,c)=>{let o=indexedDB.open(a.dbName);o.onsuccess=function(s){let l=s.target.result,p=l.objectStoreNames.contains(e);l.close(),i(p)},o.onerror=function(s){c(s.target.error)}})),!!r||new Promise((i,c)=>{let o=indexedDB.open(a.dbName,t?t.version+1:1);o.onupgradeneeded=function(s){let l=s.target.result;l.objectStoreNames.contains(e)||l.createObjectStore(e)},o.onsuccess=function(s){s.target.result.close(),i()},o.onerror=c})}async openDB(){let e,t;if(this.db)return this.db;let r=new Promise((c,o)=>{e=c,t=o});for(let c of this.storeNameList)await this.checkAndCreateStore(c);let a=this,i=indexedDB.open(this.dbName);return i.onsuccess=c=>{a.db=c.target.result,e(this.db)},i.onerror=t,r}async executeOperation(e,t){let r=await this.openDB();return new Promise((a,i)=>{let c=r.transaction(e,"readwrite"),o=c.objectStore(e);c.oncomplete=()=>a(),c.onerror=s=>i(\`Transaction failed: \${s.target.error}\`);try{t(o)}catch(s){i(\`Operation failed: \${s.message}\`)}})}}let tn=new We(ri,[dt.store,nr.store,ar.store]);class rn{constructor(e,t){this.storeBackend=e,this.storeName=t}async addItem(e,t){return new Promise(async(r,a)=>{this.storeBackend.executeOperation(this.storeName,i=>{let c=i.add(t,e);c.onsuccess=r,c.onerror=a})})}async putItem(e,t){return new Promise(async(r,a)=>{this.storeBackend.executeOperation(this.storeName,i=>{let c=i.put(t,e);c.onsuccess=r,c.onerror=a})})}async hasItem(e){try{return!!await this.getItem(e)}catch{return!1}}async getItem(e){return new Promise(async(t,r)=>{this.storeBackend.executeOperation(this.storeName,a=>{let i=a.get(e);i.onsuccess=()=>{t(i.result)},i.onerror=r})})}async updateItem(e,t){return new Promise(async(r,a)=>{this.storeBackend.executeOperation(this.storeName,i=>{let c=i.get(e);c.onsuccess=()=>{let o=c.result;Object.assign(o,t),i.put(o,e),r()},c.onerror=a})})}async deleteItem(e){return new Promise(async(t,r)=>{this.storeBackend.executeOperation(this.storeName,a=>{let i=a.delete(e);i.onsuccess=t,i.onerror=r})})}}class nn extends rn{constructor(){super(tn,dt.store)}async getApp(e){return this.getItem(e)}async addApp(e,t){return this.addItem(e,t)}async putApp(e,t){return this.putItem(e,t)}async hasApp(e){return this.hasItem(e)}async deleteApp(e){return this.deleteItem(e)}}class ai extends rn{constructor(){super(tn,ar.store)}async get(e){return this.getItem(e)}async add(e,t){return this.addItem(e,t)}async put(e,t){return this.putItem(e,t)}async delete(e){return this.deleteItem(e)}}class ft extends en{constructor(e,t,r){super(e,t),this.dataService=new Tt(e),this.requestCache=new Map,this.gudhub=r,this.storeManager=new ai}static[Symbol.hasInstance](e){try{return e instanceof ft}catch{return!1}}async getCachedMergedChunk(e,t){try{return(await this.storeManager.get(e)).mergedData}catch{let a=t.map(o=>this.dataService.getChunk(e,o)),i=await Promise.all(a),c=await this.gudhub.util.mergeChunks(i);return this.putMergedChunks(e,{hashes:t,mergedData:{items_list:c}}),{items_list:c}}}isWithCache(){return!0}async getMergedChunkForApp(e){}async getMergedChunkForIDList(e,t){try{let r,a=!0,i=await this.storeManager.get(e);try{if(t.length<i.hashes.length)throw Error();for(let s of i.hashes)t.indexOf(s)!=i.hashes.indexOf(s)&&(a=!1)}catch{a=!1}let c=[],o=[];if(t.length>i.hashes.length&&(c=t.slice(i.hashes.length)),a||(c=t),c.length>0){let s=c.map(l=>this.dataService.getChunk(e,l));o=await Promise.all(s)}return a||(r=await this.gudhub.util.mergeChunks([...o])),a&&(r=await this.gudhub.util.mergeChunks([i.mergedData,...o])),c.length>0&&this.putMergedChunks(e,{hashes:t,mergedData:{items_list:r}}),{items_list:r}}catch{let a=t.map(o=>this.dataService.getChunk(e,o)),i=await Promise.all(a),c=await this.gudhub.util.mergeChunks(i);return this.putMergedChunks(e,{hashes:t,mergedData:{items_list:c}}),{items_list:c}}}async putMergedChunks(e,t){return this.storeManager.put(e,t)}}let be={INIT:1,REQUEST_APP:2,PROCESS_DATA:3,DECLINE_PROCESS_DATA_REQUEST:4};class ir extends Ot{constructor(e,t,r){super(e,t,r),this.dataService=new Ze(e,t,r),this.requestCache=new Map,this.gudhub=r,this.resolveFnMap=new Map,this.appRequestAndProcessWorker=new AppRequestWorkerScript,this.appRequestAndProcessWorker.postMessage({type:be.INIT,gudhubSerialized:this.gudhub.serialized});let a=this;this.appRequestAndProcessWorker.onerror=function(i){},this.appRequestAndProcessWorker.onmessage=function(i){i.data.type==be.REQUEST_APP&&a.resolveFnMap.has(i.data.id)&&a.resolveFnMap.get(i.data.id)(i.data.data),i.data.type==be.PROCESS_DATA&&(a.gudhub.itemProcessor.handleDiff(i.data.id,i.data.compareRes),(i.data.viewListChanged||i.data.fieldListChanged)&&a.gudhub.appProcessor.updateAppFieldsAndViews(i.data.newVersion))},this.isWithCache(),this.storeManager=new nn}static[Symbol.hasInstance](e){try{return e instanceof ir}catch{return!1}}isWithCache(){return!0}async getApp(e){if(this.requestCache.has(e))return this.requestCache.get(e);let t=this;await this.has(e);{let r=new Promise((a,i)=>{t.resolveFnMap.set(e,a)});return this.requestCache.set(e,r),this.appRequestAndProcessWorker.postMessage({type:be.REQUEST_APP,id:e}),r}}async getCached(e){return this.storeManager.getApp(e)}async has(e){try{return this.storeManager.hasApp(e)}catch{}}async putApp(e,t){return this.storeManager.putApp(e,t)}}class an extends Ot{constructor(e,t,r){super(e,t,r),this.dataService=new Ze(e,null,r),this.requestCache=new Map,this.gudhub=r}isWithCache(){return!1}async getAppWithoutProcessing(e){let t=await this.dataService.getAppWithoutProcessing(e);return await this.putApp(e,t),t}async getApp(e){let t;if(this.requestCache.has(e))return this.requestCache.get(e);let r=new Promise((c,o)=>{t=c});this.requestCache.set(e,r);let a=await this.dataService.getAppWithoutProcessing(e),i=await this.processRequestedApp(e,a);return t(i),i}async has(e){return!1}async getCached(e){throw Error()}async putApp(e,t){throw Error()}}class ii extends Ot{constructor(e,t,r){super(e,t,r),this.dataService=new Ze(e,t,r),this.requestCache=new Map,this.gudhub=r,this.resolveFnMap=new Map,this.appRequestAndProcessWorker=new AppRequestWorkerScript,this.appRequestAndProcessWorker.postMessage({type:be.INIT,gudhubSerialized:this.gudhub.serialized});let a=this;this.appRequestAndProcessWorker.onerror=function(i){},this.appRequestAndProcessWorker.onmessage=function(i){i.data.type==be.REQUEST_APP&&a.resolveFnMap.has(i.data.id)&&a.resolveFnMap.get(i.data.id)(i.data.data),i.data.type==be.PROCESS_DATA&&(a.gudhub.itemProcessor.handleDiff(i.data.id,i.data.compareRes),(i.data.viewListChanged||i.data.fieldListChanged)&&a.gudhub.appProcessor.updateAppFieldsAndViews(i.data.newVersion))},this.isWithCache(),this.storeManager=new nn}static[Symbol.hasInstance](e){try{return e instanceof ir}catch{return!1}}isWithCache(){return!1}async getApp(e){let t;if(this.requestCache.has(e))return this.requestCache.get(e);let r=new Promise((a,i)=>{t=a});return this.resolveFnMap.set(e,t),this.requestCache.set(e,r),this.appRequestAndProcessWorker.postMessage({type:be.REQUEST_APP,id:e}),r}async getCached(e){return this.storeManager.getApp(e)}async has(e){try{return this.storeManager.hasApp(e)}catch{}}async putApp(e,t){return this.storeManager.putApp(e,t)}}de.IS_BROWSER,de.IS_BROWSER&&Xe&&(er=ii,Hr=dt),de.IS_BROWSER||(er=Ze),de.IS_BROWSER&&Qr&&!Xe&&(kt=ft,tr=nr),de.IS_BROWSER&&Qr&&Xe&&(kt=ft,tr=nr),de.IS_BROWSER||(kt=Tt);let sr=an,si=ft;Xe&&(sr=an);var de=I("5xozB");class sn{constructor(e,t,r,a,i,c,o){this.storage=e,this.pipeService=t,this.req=r,this.ws=a,this.applistReceived=!1,this.activateSW=c,this.util=i,this.appListeners(),this.dataService=o,this.appRequestCache=new Map}async createNewAppApi(e){try{let t=await this.req.post({url:"/api/app/create",form:{app:JSON.stringify(e)}});return t.from_apps_list=!0,t}catch(t){return console.log(t),null}}async updateAppApi(e){try{return await this.req.post({url:"/api/app/update",form:{app:JSON.stringify(e)}})}catch(t){return console.log(t),null}}async deleteAppApi(e){try{return await this.req.post({url:"/api/app/delete",form:{app_id:e}})}catch(t){return console.log(t),null}}async getAppListApi(){try{return(await this.req.get({url:"/api/applist/get"})).apps_list.map(e=>(e.from_apps_list=!0,e))}catch(e){return console.log(e),null}}getAppListFromStorage(){return this.storage.getAppsList()}getAppFromStorage(e){let t=this.storage.getApp(e);return t&&t.field_list.length?t:null}addNewAppToStorage(e){return this.storage.getAppsList().push(e)}saveAppInStorage(e){e.items_object={};for(let r=0;r<e.items_list.length;r++){e.items_object[e.items_list[r].item_id]={};for(let a=0;a<e.items_list[r].fields.length;a++)e.items_object[e.items_list[r].item_id][e.items_list[r].fields[a].field_id]=e.items_list[r].fields[a]}let t=this.storage.getApp(e.app_id);return t?(e.from_apps_list=t.from_apps_list,e.permission=t.permission,this.storage.updateApp(e)):(e.from_apps_list=!1,this.addNewAppToStorage(e)),this.getAppFromStorage(e.app_id)}updateAppFieldsAndViews(e){let t=this.getAppFromStorage(e.app_id);e.items_list=t.items_list,e.file_list=t.file_list,e.from_apps_list=t.from_apps_list,e.items_object=t.items_object,this.storage.updateApp(e),this.pipeService.emit("gh_app_views_update",{app_id:e.app_id},e.views_list),e.field_list.forEach(r=>{this.pipeService.emit("gh_model_update",{app_id:e.app_id,field_id:r.field_id},r)})}updateAppInStorage(e){this.storage.getApp(e.app_id)?(this.storage.updateApp(e),this.pipeService.emit("gh_app_update",{app_id:e.app_id},e),this.pipeService.emit("gh_items_update",{app_id:e.app_id},e.items_list)):this.addNewAppToStorage(e)}deletingAppFromStorage(e){let t=this.storage.getAppsList();return t.forEach((r,a)=>{r.app_id==e&&t.splice(a)}),t}updateAppsListInStorage(e=[]){for(let t of e){let r=this.storage.getApp(t.app_id);r?(r.from_apps_list=t.from_apps_list,r.permission=t.permission):this.addNewAppToStorage(t)}}async refreshApps(e=[]){for(let t of e)if(t!=null)try{let r=await this.dataService.getApp(t);if(r){r.items_object={};for(let a=0;a<r.items_list.length;a++){r.items_object[r.items_list[a].item_id]={};for(let i=0;i<r.items_list[a].fields.length;i++)r.items_object[r.items_list[a].item_id][r.items_list[a].fields[i].field_id]=r.items_list[a].fields[i]}this.updateAppInStorage(r),this.pipeService.emit("gh_app_views_update",{app_id:r.app_id},r.views_list)}}catch(r){console.log(r)}console.log("Apps refreshed: ",JSON.stringify(e))}async refreshAppsList(){let e=this.getAppListFromStorage(),t=(await this.getAppListApi()).map(r=>({...r,...e.find(a=>a.app_id===r.app_id)}));this.updateAppsListInStorage(t),this.pipeService.emit("gh_apps_list_refreshed",{})}async getAppsList(){let e=this.getAppListFromStorage();if(!this.applistReceived){let t=await this.getAppListApi();if(!t)return null;this.updateAppsListInStorage(t),this.applistReceived=!0,e=t}return e}async getAppInfo(e){let t=await this.getAppsList();return t?t.find(r=>r.app_id==e):null}async deleteApp(e){return await this.deleteAppApi(e),this.deletingAppFromStorage(e)}async getApp(e,t=!1){if(!e)return null;let r=this.getAppFromStorage(e);if(r)return r;if(this.appRequestCache.has(e))return this.appRequestCache.get(e);let a=this,i=new Promise(async(c,o)=>{try{let s=await a.dataService.getApp(e);s||o();let l=t?s:{...s,items_list:s.items_list.filter(p=>!p.trash)};l=t?l:{...l,field_list:l.field_list.filter(p=>!p.trash)},c(l),a.saveAppInStorage(l),a.ws.addSubscription(e)}catch{o()}});return a.appRequestCache.set(e,i),i}async updateApp(e){if(!e.views_list||!e.views_list.length||!e.show){let r=await this.getApp(e.app_id);e.views_list&&e.views_list.length||(e.views_list=r.views_list),e.show===void 0&&(e.show=r.show)}let t=await this.updateAppApi(e);return this.updateAppFieldsAndViews(t),t}async updateAppInfo(e={}){return this.pipeService.emit("gh_app_info_update",{app_id:e.app_id},e),this.updateApp(e)}async createNewApp(e){let t=await this.createNewAppApi(e);return t.items_object={},this.addNewAppToStorage(t),t}async getAppViews(e){if(e)return(await this.getApp(e)).views_list}async handleAppChange(e,t,r){let a=this.util.areViewListsEqual(t.views_list,r.views_list),i=this.util.areFieldListsEqual(t.field_list,r.field_list);(a||i)&&this.updateAppFieldsAndViews({id:e,views_list:r.views_list,field_list:r.field_list})}clearAppProcessor(){this.getAppListPromises=null,this.getAppPromises={},this.applistReceived=!1}appListeners(){this.pipeService.onRoot("gh_app_get",{},async(e,t)=>{if(t&&t.app_id){let r=await this.getApp(t.app_id);this.pipeService.emit("gh_app_get",t,r)}}),this.pipeService.onRoot("gh_apps_list_get",{},async(e,t)=>{let r=await this.getAppsList();this.pipeService.emit("gh_apps_list_get",t,r)}),this.pipeService.onRoot("gh_delete_app",{},async(e,t)=>{let r=await this.deleteApp(t.app_id);this.pipeService.emit("gh_apps_list_update",{recipient:"all"},r)}),this.pipeService.onRoot("gh_app_update",{},async(e,t)=>{t.app.items_list=[],t.app.file_list=[];let r=await this.updateApp(t.app);this.pipeService.emit("gh_app_views_update",{app_id:r.app_id},r.views_list);let a=await this.getAppsList();this.pipeService.emit("gh_apps_list_update",{recipient:"all"},a),r.field_list.forEach(i=>{this.pipeService.emit("gh_model_update",{app_id:r.app_id,field_id:i.field_id},i)})}),this.pipeService.onRoot("gh_app_view_get",{},async(e,t)=>{if(t&&t.app_id){let r=await this.getApp(t.app_id);r.views_list.forEach((a,i)=>{a.view_id==t.view_id&&this.pipeService.emit("gh_app_view_get",t,r.views_list[i])})}}),this.pipeService.onRoot("gh_app_info_get",{},async(e,t)=>{let r=await this.getAppInfo(t.app_id);r&&this.pipeService.emit("gh_app_info_get",t,r)}),this.pipeService.onRoot("gh_app_info_update",{},async(e,t)=>{if(t&&t.app){let r=await this.updateAppInfo(t.app);this.pipeService.emit("gh_app_info_update",{app_id:t.app.app_id},r)}}),this.pipeService.onRoot("gh_app_create",{},async(e,t)=>{await this.createNewApp(t.app);let r=await this.getAppsList();this.pipeService.emit("gh_apps_list_update",{recipient:"all"},r)}),de.IS_BROWSER_MAIN_THREAD&&this.activateSW&&navigator.serviceWorker.addEventListener("message",async e=>{if(e.data.type==="refresh app"){let t=await this.getApp(e.data.payload.app_id);t&&this.util.compareAppsItemsLists(t.items_list,e.data.payload.items_list.filter(r=>!r.trash),({diff_fields_items:r,diff_fields_items_Ids:a,diff_items:i,newItems:c,deletedItems:o})=>{(i.length||c.length||o.length)&&(this.pipeService.emit("gh_items_update",{app_id:e.data.payload.app_id},e.data.payload.items_list.filter(s=>!s.trash)),i.forEach(s=>this.pipeService.emit("gh_item_update",{app_id:e.data.payload.app_id,item_id:s.item_id},s))),a.forEach(s=>{let l=r[s];l&&l.forEach(p=>{this.pipeService.emit("gh_value_update",{app_id:e.data.payload.app_id,item_id:s,field_id:p.field_id},p.field_value)})})}),e.data.payload.items_list=await this.util.mergeChunks([t,e.data.payload]),this.saveAppInStorage(e.data.payload)}})}}var xt=I("akXK4");function on(n=[]){return n.filter(e=>e.field_value!=null)}function oi(n={}){let e=Object.entries(n);return e.length?\`&\${e.map(([t,r])=>\`\${t}=\${r}\`).join("&")}\`:""}var Pt={},cn={},or={},ve={};ve=TypeError;var ht={},cr=typeof Map=="function"&&Map.prototype,lr=Object.getOwnPropertyDescriptor&&cr?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,Ct=cr&&lr&&typeof lr.get=="function"?lr.get:null,ln=cr&&Map.prototype.forEach,ur=typeof Set=="function"&&Set.prototype,pr=Object.getOwnPropertyDescriptor&&ur?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,Rt=ur&&pr&&typeof pr.get=="function"?pr.get:null,un=ur&&Set.prototype.forEach,ci=typeof WeakMap=="function"&&WeakMap.prototype,mt=ci?WeakMap.prototype.has:null,li=typeof WeakSet=="function"&&WeakSet.prototype,gt=li?WeakSet.prototype.has:null,ui=typeof WeakRef=="function"&&WeakRef.prototype,pn=ui?WeakRef.prototype.deref:null,pi=Boolean.prototype.valueOf,di=Object.prototype.toString,fi=Function.prototype.toString,hi=String.prototype.match,dr=String.prototype.slice,Me=String.prototype.replace,mi=String.prototype.toUpperCase,dn=String.prototype.toLowerCase,fn=RegExp.prototype.test,hn=Array.prototype.concat,xe=Array.prototype.join,gi=Array.prototype.slice,mn=Math.floor,fr=typeof BigInt=="function"?BigInt.prototype.valueOf:null,hr=Object.getOwnPropertySymbols,mr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,et=typeof Symbol=="function"&&typeof Symbol.iterator=="object",yt=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===et||!0)?Symbol.toStringTag:null,gn=Object.prototype.propertyIsEnumerable,yn=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(n){return n.__proto__}:null);function _n(n,e){if(n===1/0||n===-1/0||n!=n||n&&n>-1e3&&n<1e3||fn.call(/e/,e))return e;var t=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof n=="number"){var r=n<0?-mn(-n):mn(n);if(r!==n){var a=String(r),i=dr.call(e,a.length+1);return Me.call(a,t,"$&_")+"."+Me.call(Me.call(i,/([0-9]{3})/g,"$&_"),/_$/,"")}}return Me.call(e,t,"$&_")}var gr={},bn=gr.custom,vn=xn(bn)?bn:null,$n={__proto__:null,double:'"',single:"'"},yi={__proto__:null,double:/(["\\\\])/g,single:/(['\\\\])/g};function wn(n,e,t){var r=$n[t.quoteStyle||e];return r+n+r}function _i(n){return Me.call(String(n),/"/g,""")}function Ge(n){return!yt||!(typeof n=="object"&&(yt in n||n[yt]!==void 0))}function yr(n){return Fe(n)==="[object Array]"&&Ge(n)}function bi(n){return Fe(n)==="[object Date]"&&Ge(n)}function Sn(n){return Fe(n)==="[object RegExp]"&&Ge(n)}function vi(n){return Fe(n)==="[object Error]"&&Ge(n)}function $i(n){return Fe(n)==="[object String]"&&Ge(n)}function wi(n){return Fe(n)==="[object Number]"&&Ge(n)}function Si(n){return Fe(n)==="[object Boolean]"&&Ge(n)}function xn(n){if(et)return n&&typeof n=="object"&&n instanceof Symbol;if(typeof n=="symbol")return!0;if(!n||typeof n!="object"||!mr)return!1;try{return mr.call(n),!0}catch{}return!1}function xi(n){if(!n||typeof n!="object"||!fr)return!1;try{return fr.call(n),!0}catch{}return!1}ht=function n(e,t,r,a){var i=t||{};if(Ce(i,"quoteStyle")&&!Ce($n,i.quoteStyle))throw TypeError('option "quoteStyle" must be "single" or "double"');if(Ce(i,"maxStringLength")&&(typeof i.maxStringLength=="number"?i.maxStringLength<0&&i.maxStringLength!==1/0:i.maxStringLength!==null))throw TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or \`null\`');var c=!Ce(i,"customInspect")||i.customInspect;if(typeof c!="boolean"&&c!=="symbol")throw TypeError("option \\"customInspect\\", if provided, must be \`true\`, \`false\`, or \`'symbol'\`");if(Ce(i,"indent")&&i.indent!==null&&i.indent!==" "&&!(parseInt(i.indent,10)===i.indent&&i.indent>0))throw TypeError('option "indent" must be "\\\\t", an integer > 0, or \`null\`');if(Ce(i,"numericSeparator")&&typeof i.numericSeparator!="boolean")throw TypeError('option "numericSeparator", if provided, must be \`true\` or \`false\`');var o=i.numericSeparator;if(e===void 0)return"undefined";if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="string")return An(e,i);if(typeof e=="number"){if(e===0)return 1/0/e>0?"0":"-0";var s=String(e);return o?_n(e,s):s}if(typeof e=="bigint"){var l=String(e)+"n";return o?_n(e,l):l}var p=i.depth===void 0?5:i.depth;if(r===void 0&&(r=0),r>=p&&p>0&&typeof e=="object")return yr(e)?"[Array]":"[Object]";var h=Ni(i,r);if(a===void 0)a=[];else if(En(a,e)>=0)return"[Circular]";function d(F,W,Q){if(W&&(a=gi.call(a)).push(W),Q){var ie={depth:i.depth};return Ce(i,"quoteStyle")&&(ie.quoteStyle=i.quoteStyle),n(F,ie,r+1,a)}return n(F,i,r+1,a)}if(typeof e=="function"&&!Sn(e)){var g=Ai(e),f=Nt(e,d);return"[Function"+(g?": "+g:" (anonymous)")+"]"+(f.length>0?" { "+xe.call(f,", ")+" }":"")}if(xn(e)){var $=et?Me.call(String(e),/^(Symbol\\(.*\\))_[^)]*$/,"$1"):mr.call(e);return typeof e!="object"||et?$:_t($)}if(Pi(e)){for(var S="<"+dn.call(String(e.nodeName)),w=e.attributes||[],y=0;y<w.length;y++)S+=" "+w[y].name+"="+wn(_i(w[y].value),"double",i);return S+=">",e.childNodes&&e.childNodes.length&&(S+="..."),S+="</"+dn.call(String(e.nodeName))+">"}if(yr(e)){if(e.length===0)return"[]";var _=Nt(e,d);return h&&!Ri(_)?"["+br(_,h)+"]":"[ "+xe.call(_,", ")+" ]"}if(vi(e)){var v=Nt(e,d);return"cause"in Error.prototype||!("cause"in e)||gn.call(e,"cause")?v.length===0?"["+String(e)+"]":"{ ["+String(e)+"] "+xe.call(v,", ")+" }":"{ ["+String(e)+"] "+xe.call(hn.call("[cause]: "+d(e.cause),v),", ")+" }"}if(typeof e=="object"&&c){if(vn&&typeof e[vn]=="function"&&gr)return gr(e,{depth:p-r});if(c!=="symbol"&&typeof e.inspect=="function")return e.inspect()}if(ki(e)){var x=[];return ln&&ln.call(e,function(F,W){x.push(d(W,e,!0)+" => "+d(F,e))}),kn("Map",Ct.call(e),x,h)}if(ji(e)){var j=[];return un&&un.call(e,function(F){j.push(d(F,e))}),kn("Set",Rt.call(e),j,h)}if(Ii(e))return _r("WeakMap");if(Ti(e))return _r("WeakSet");if(Oi(e))return _r("WeakRef");if(wi(e))return _t(d(Number(e)));if(xi(e))return _t(d(fr.call(e)));if(Si(e))return _t(pi.call(e));if($i(e))return _t(d(String(e)));if(typeof window<"u"&&e===window)return"{ [object Window] }";if(typeof globalThis<"u"&&e===globalThis||re!==void 0&&e===re)return"{ [object globalThis] }";if(!bi(e)&&!Sn(e)){var T=Nt(e,d),R=yn?yn(e)===Object.prototype:e instanceof Object||e.constructor===Object,D=e instanceof Object?"":"null prototype",H=!R&&yt&&Object(e)===e&&yt in e?dr.call(Fe(e),8,-1):D?"Object":"",B=(R||typeof e.constructor!="function"?"":e.constructor.name?e.constructor.name+" ":"")+(H||D?"["+xe.call(hn.call([],H||[],D||[]),": ")+"] ":"");return T.length===0?B+"{}":h?B+"{"+br(T,h)+"}":B+"{ "+xe.call(T,", ")+" }"}return String(e)};var Ei=Object.prototype.hasOwnProperty||function(n){return n in this};function Ce(n,e){return Ei.call(n,e)}function Fe(n){return di.call(n)}function Ai(n){if(n.name)return n.name;var e=hi.call(fi.call(n),/^function\\s*([\\w$]+)/);return e?e[1]:null}function En(n,e){if(n.indexOf)return n.indexOf(e);for(var t=0,r=n.length;t<r;t++)if(n[t]===e)return t;return-1}function ki(n){if(!Ct||!n||typeof n!="object")return!1;try{Ct.call(n);try{Rt.call(n)}catch{return!0}return n instanceof Map}catch{}return!1}function Ii(n){if(!mt||!n||typeof n!="object")return!1;try{mt.call(n,mt);try{gt.call(n,gt)}catch{return!0}return n instanceof WeakMap}catch{}return!1}function Oi(n){if(!pn||!n||typeof n!="object")return!1;try{return pn.call(n),!0}catch{}return!1}function ji(n){if(!Rt||!n||typeof n!="object")return!1;try{Rt.call(n);try{Ct.call(n)}catch{return!0}return n instanceof Set}catch{}return!1}function Ti(n){if(!gt||!n||typeof n!="object")return!1;try{gt.call(n,gt);try{mt.call(n,mt)}catch{return!0}return n instanceof WeakSet}catch{}return!1}function Pi(n){return!!n&&typeof n=="object"&&(typeof HTMLElement<"u"&&n instanceof HTMLElement||typeof n.nodeName=="string"&&typeof n.getAttribute=="function")}function An(n,e){if(n.length>e.maxStringLength){var t=n.length-e.maxStringLength,r="... "+t+" more character"+(t>1?"s":"");return An(dr.call(n,0,e.maxStringLength),e)+r}var a=yi[e.quoteStyle||"single"];return a.lastIndex=0,wn(Me.call(Me.call(n,a,"\\\\$1"),/[\\x00-\\x1f]/g,Ci),"single",e)}function Ci(n){var e=n.charCodeAt(0),t={8:"b",9:"t",10:"n",12:"f",13:"r"}[e];return t?"\\\\"+t:"\\\\x"+(e<16?"0":"")+mi.call(e.toString(16))}function _t(n){return"Object("+n+")"}function _r(n){return n+" { ? }"}function kn(n,e,t,r){return n+" ("+e+") {"+(r?br(t,r):xe.call(t,", "))+"}"}function Ri(n){for(var e=0;e<n.length;e++)if(En(n[e],\`
|
|
100
|
+
\`)>=0)return!1;return!0}function Ni(n,e){var t;if(n.indent===" ")t=" ";else{if(typeof n.indent!="number"||!(n.indent>0))return null;t=xe.call(Array(n.indent+1)," ")}return{base:t,prev:xe.call(Array(e+1),t)}}function br(n,e){if(n.length===0)return"";var t=\`
|
|
101
|
+
\`+e.prev+e.base;return t+xe.call(n,","+t)+\`
|
|
102
|
+
\`+e.prev}function Nt(n,e){var t,r=yr(n),a=[];if(r){a.length=n.length;for(var i=0;i<n.length;i++)a[i]=Ce(n,i)?e(n[i],n):""}var c=typeof hr=="function"?hr(n):[];if(et){t={};for(var o=0;o<c.length;o++)t["$"+c[o]]=c[o]}for(var s in n)if(Ce(n,s)&&(!r||String(Number(s))!==s||!(s<n.length))){if(et&&t["$"+s]instanceof Symbol)continue;fn.call(/[^\\w$]/,s)?a.push(e(s,n)+": "+e(n[s],n)):a.push(s+": "+e(n[s],n))}if(typeof hr=="function")for(var l=0;l<c.length;l++)gn.call(n,c[l])&&a.push("["+e(c[l])+"]: "+e(n[c[l]],n));return a}var In={},Mt=function(n,e,t){for(var r,a=n;(r=a.next)!=null;a=r)if(r.key===e)return a.next=r.next,t||(r.next=n.next,n.next=r),r},Mi=function(n,e){if(n){var t=Mt(n,e);return t&&t.value}},Fi=function(n,e,t){var r=Mt(n,e);r?r.value=t:n.next={key:e,next:n.next,value:t}},Li=function(n,e){return!!n&&!!Mt(n,e)},Di=function(n,e){if(n)return Mt(n,e,!0)};In=function(){var n,e={assert:function(t){if(!e.has(t))throw new ve("Side channel does not contain "+ht(t))},delete:function(t){var r=n&&n.next,a=Di(n,t);return a&&r&&r===a&&(n=void 0),!!a},get:function(t){return Mi(n,t)},has:function(t){return Li(n,t)},set:function(t,r){n||(n={next:void 0}),Fi(n,t,r)}};return e};var tt={},bt={},vr={};vr=Object;var On={};On=Error;var jn={};jn=EvalError;var Tn={};Tn=RangeError;var Pn={};Pn=ReferenceError;var ze={};ze=SyntaxError;var Cn={};Cn=URIError;var Rn={};Rn=Math.abs;var Nn={};Nn=Math.floor;var Mn={};Mn=Math.max;var Fn={};Fn=Math.min;var Ln={};Ln=Math.pow;var Dn={};Dn=Math.round;var qn={},Bn={};Bn=Number.isNaN||function(n){return n!=n},qn=function(n){return Bn(n)||n===0?n:n<0?-1:1};var Un=Function,$r=function(n){try{return Un('"use strict"; return ('+n+").constructor;")()}catch{}},Le={},Wn={};Wn=Object.getOwnPropertyDescriptor;var Ft=Wn;if(Ft)try{Ft([],"length")}catch{Ft=null}Le=Ft;var Gn={},Lt=Object.defineProperty||!1;if(Lt)try{Lt({},"a",{value:1})}catch{Lt=!1}Gn=Lt;var wr=function(){throw new ve},qi=Le?function(){try{return arguments.callee,wr}catch{try{return Le(arguments,"callee").get}catch{return wr}}}():wr,rt=I("kfIQl")(),ce={},Dt={};Dt=typeof Reflect<"u"&&Reflect.getPrototypeOf||null;var qt={};qt=vr.getPrototypeOf||null;var Sr={},Bt={},Re={},zn={},Bi="Function.prototype.bind called on incompatible ",Ui=Object.prototype.toString,Wi=Math.max,Gi="[object Function]",Vn=function(n,e){for(var t=[],r=0;r<n.length;r+=1)t[r]=n[r];for(var a=0;a<e.length;a+=1)t[a+n.length]=e[a];return t},zi=function(n,e){for(var t=[],r=e,a=0;r<n.length;r+=1,a+=1)t[a]=n[r];return t},Vi=function(n,e){for(var t="",r=0;r<n.length;r+=1)t+=n[r],r+1<n.length&&(t+=e);return t};zn=function(n){var e,t=this;if(typeof t!="function"||Ui.apply(t)!==Gi)throw TypeError(Bi+t);for(var r=zi(arguments,1),a=function(){if(this instanceof e){var l=t.apply(this,Vn(r,arguments));return Object(l)===l?l:this}return t.apply(n,Vn(r,arguments))},i=Wi(0,t.length-r.length),c=[],o=0;o<i;o++)c[o]="$"+o;if(e=Function("binder","return function ("+Vi(c,",")+"){ return binder.apply(this,arguments); }")(a),t.prototype){var s=function(){};s.prototype=t.prototype,e.prototype=new s,s.prototype=null}return e},Re=Function.prototype.bind||zn;var De={};De=Function.prototype.call;var Hn={},Ut={};Ut=Function.prototype.apply;var Jn={};Jn=typeof Reflect<"u"&&Reflect&&Reflect.apply,Hn=Jn||Re.call(De,Ut),Bt=function(n){if(n.length<1||typeof n[0]!="function")throw new ve("a function is required");return Hn(Re,De,n)};try{Jr=[].__proto__===Array.prototype}catch(n){if(!n||typeof n!="object"||!("code"in n)||n.code!=="ERR_PROTO_ACCESS")throw n}var xr=!!Jr&&Le&&Le(Object.prototype,"__proto__"),Kn=Object,Qn=Kn.getPrototypeOf;Sr=xr&&typeof xr.get=="function"?Bt([xr.get]):typeof Qn=="function"&&function(n){return Qn(n==null?n:Kn(n))},ce=Dt?function(n){return Dt(n)}:qt?function(n){if(!n||typeof n!="object"&&typeof n!="function")throw TypeError("getProto: not an object");return qt(n)}:Sr?function(n){return Sr(n)}:null;var nt={},Hi=typeof Uint8Array<"u"&&ce?ce(Uint8Array):void 0,Ve={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?void 0:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?void 0:ArrayBuffer,"%ArrayIteratorPrototype%":rt&&ce?ce([][Symbol.iterator]()):void 0,"%AsyncFromSyncIteratorPrototype%":void 0,"%AsyncFunction%":nt,"%AsyncGenerator%":nt,"%AsyncGeneratorFunction%":nt,"%AsyncIteratorPrototype%":nt,"%Atomics%":typeof Atomics>"u"?void 0:Atomics,"%BigInt%":typeof BigInt>"u"?void 0:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?void 0:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?void 0:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?void 0:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":On,"%eval%":eval,"%EvalError%":jn,"%Float16Array%":typeof Float16Array>"u"?void 0:Float16Array,"%Float32Array%":typeof Float32Array>"u"?void 0:Float32Array,"%Float64Array%":typeof Float64Array>"u"?void 0:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?void 0:FinalizationRegistry,"%Function%":Un,"%GeneratorFunction%":nt,"%Int8Array%":typeof Int8Array>"u"?void 0:Int8Array,"%Int16Array%":typeof Int16Array>"u"?void 0:Int16Array,"%Int32Array%":typeof Int32Array>"u"?void 0:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":rt&&ce?ce(ce([][Symbol.iterator]())):void 0,"%JSON%":typeof JSON=="object"?JSON:void 0,"%Map%":typeof Map>"u"?void 0:Map,"%MapIteratorPrototype%":typeof Map<"u"&&rt&&ce?ce(new Map()[Symbol.iterator]()):void 0,"%Math%":Math,"%Number%":Number,"%Object%":vr,"%Object.getOwnPropertyDescriptor%":Le,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?void 0:Promise,"%Proxy%":typeof Proxy>"u"?void 0:Proxy,"%RangeError%":Tn,"%ReferenceError%":Pn,"%Reflect%":typeof Reflect>"u"?void 0:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?void 0:Set,"%SetIteratorPrototype%":typeof Set<"u"&&rt&&ce?ce(new Set()[Symbol.iterator]()):void 0,"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?void 0:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":rt&&ce?ce(""[Symbol.iterator]()):void 0,"%Symbol%":rt?Symbol:void 0,"%SyntaxError%":ze,"%ThrowTypeError%":qi,"%TypedArray%":Hi,"%TypeError%":ve,"%Uint8Array%":typeof Uint8Array>"u"?void 0:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?void 0:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?void 0:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?void 0:Uint32Array,"%URIError%":Cn,"%WeakMap%":typeof WeakMap>"u"?void 0:WeakMap,"%WeakRef%":typeof WeakRef>"u"?void 0:WeakRef,"%WeakSet%":typeof WeakSet>"u"?void 0:WeakSet,"%Function.prototype.call%":De,"%Function.prototype.apply%":Ut,"%Object.defineProperty%":Gn,"%Object.getPrototypeOf%":qt,"%Math.abs%":Rn,"%Math.floor%":Nn,"%Math.max%":Mn,"%Math.min%":Fn,"%Math.pow%":Ln,"%Math.round%":Dn,"%Math.sign%":qn,"%Reflect.getPrototypeOf%":Dt};if(ce)try{null.error}catch(n){var Ji=ce(ce(n));Ve["%Error.prototype%"]=Ji}var Ki=function n(e){var t;if(e==="%AsyncFunction%")t=$r("async function () {}");else if(e==="%GeneratorFunction%")t=$r("function* () {}");else if(e==="%AsyncGeneratorFunction%")t=$r("async function* () {}");else if(e==="%AsyncGenerator%"){var r=n("%AsyncGeneratorFunction%");r&&(t=r.prototype)}else if(e==="%AsyncIteratorPrototype%"){var a=n("%AsyncGenerator%");a&&ce&&(t=ce(a.prototype))}return Ve[e]=t,t},Yn={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},vt={},Qi=Function.prototype.call,Yi=Object.prototype.hasOwnProperty;vt=Re.call(Qi,Yi);var Xi=Re.call(De,Array.prototype.concat),Zi=Re.call(Ut,Array.prototype.splice),Xn=Re.call(De,String.prototype.replace),Wt=Re.call(De,String.prototype.slice),es=Re.call(De,RegExp.prototype.exec),ts=/[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|(["'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g,rs=/\\\\(\\\\)?/g,ns=function(n){var e=Wt(n,0,1),t=Wt(n,-1);if(e==="%"&&t!=="%")throw new ze("invalid intrinsic syntax, expected closing \`%\`");if(t==="%"&&e!=="%")throw new ze("invalid intrinsic syntax, expected opening \`%\`");var r=[];return Xn(n,ts,function(a,i,c,o){r[r.length]=c?Xn(o,rs,"$1"):i||a}),r},as=function(n,e){var t,r=n;if(vt(Yn,r)&&(r="%"+(t=Yn[r])[0]+"%"),vt(Ve,r)){var a=Ve[r];if(a===nt&&(a=Ki(r)),a===void 0&&!e)throw new ve("intrinsic "+n+" exists, but is not available. Please file an issue!");return{alias:t,name:r,value:a}}throw new ze("intrinsic "+n+" does not exist!")};bt=function(n,e){if(typeof n!="string"||n.length===0)throw new ve("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof e!="boolean")throw new ve('"allowMissing" argument must be a boolean');if(es(/^%?[^%]*%?$/,n)===null)throw new ze("\`%\` may not be present anywhere but at the beginning and end of the intrinsic name");var t=ns(n),r=t.length>0?t[0]:"",a=as("%"+r+"%",e),i=a.name,c=a.value,o=!1,s=a.alias;s&&(r=s[0],Zi(t,Xi([0,1],s)));for(var l=1,p=!0;l<t.length;l+=1){var h=t[l],d=Wt(h,0,1),g=Wt(h,-1);if((d==='"'||d==="'"||d==="\`"||g==='"'||g==="'"||g==="\`")&&d!==g)throw new ze("property names with quotes must have matching quotes");if(h!=="constructor"&&p||(o=!0),r+="."+h,vt(Ve,i="%"+r+"%"))c=Ve[i];else if(c!=null){if(!(h in c)){if(!e)throw new ve("base intrinsic for "+n+" exists, but the property is not available.");return}if(Le&&l+1>=t.length){var f=Le(c,h);c=(p=!!f)&&"get"in f&&!("originalValue"in f.get)?f.get:c[h]}else p=vt(c,h),c=c[h];p&&!o&&(Ve[i]=c)}}return c};var Ee={},is=Bt([bt("%String.prototype.indexOf%")]);Ee=function(n,e){var t=bt(n,!!e);return typeof t=="function"&&is(n,".prototype.")>-1?Bt([t]):t};var Zn=bt("%Map%",!0),ss=Ee("Map.prototype.get",!0),os=Ee("Map.prototype.set",!0),cs=Ee("Map.prototype.has",!0),ls=Ee("Map.prototype.delete",!0),us=Ee("Map.prototype.size",!0);tt=!!Zn&&function(){var n,e={assert:function(t){if(!e.has(t))throw new ve("Side channel does not contain "+ht(t))},delete:function(t){if(n){var r=ls(n,t);return us(n)===0&&(n=void 0),r}return!1},get:function(t){if(n)return ss(n,t)},has:function(t){return!!n&&cs(n,t)},set:function(t,r){n||(n=new Zn),os(n,t,r)}};return e};var ea={},at=bt("%WeakMap%",!0),ps=Ee("WeakMap.prototype.get",!0),ds=Ee("WeakMap.prototype.set",!0),fs=Ee("WeakMap.prototype.has",!0),hs=Ee("WeakMap.prototype.delete",!0);ea=at?function(){var n,e,t={assert:function(r){if(!t.has(r))throw new ve("Side channel does not contain "+ht(r))},delete:function(r){if(at&&r&&(typeof r=="object"||typeof r=="function")){if(n)return hs(n,r)}else if(tt&&e)return e.delete(r);return!1},get:function(r){return at&&r&&(typeof r=="object"||typeof r=="function")&&n?ps(n,r):e&&e.get(r)},has:function(r){return at&&r&&(typeof r=="object"||typeof r=="function")&&n?fs(n,r):!!e&&e.has(r)},set:function(r,a){at&&r&&(typeof r=="object"||typeof r=="function")?(n||(n=new at),ds(n,r,a)):tt&&(e||(e=tt()),e.set(r,a))}};return t}:tt;var ms=ea||tt||In;or=function(){var n,e={assert:function(t){if(!e.has(t))throw new ve("Side channel does not contain "+ht(t))},delete:function(t){return!!n&&n.delete(t)},get:function(t){return n&&n.get(t)},has:function(t){return!!n&&n.has(t)},set:function(t,r){n||(n=ms()),n.set(t,r)}};return e};var $e={},qe={},gs=String.prototype.replace,ys=/%20/g,Er={RFC1738:"RFC1738",RFC3986:"RFC3986"};qe={default:Er.RFC3986,formatters:{RFC1738:function(n){return gs.call(n,ys,"+")},RFC3986:function(n){return String(n)}},RFC1738:Er.RFC1738,RFC3986:Er.RFC3986};var Ar=Object.prototype.hasOwnProperty,He=Array.isArray,Ae=function(){for(var n=[],e=0;e<256;++e)n.push("%"+((e<16?"0":"")+e.toString(16)).toUpperCase());return n}(),_s=function(n){for(;n.length>1;){var e=n.pop(),t=e.obj[e.prop];if(He(t)){for(var r=[],a=0;a<t.length;++a)t[a]!==void 0&&r.push(t[a]);e.obj[e.prop]=r}}},ta=function(n,e){for(var t=e&&e.plainObjects?{__proto__:null}:{},r=0;r<n.length;++r)n[r]!==void 0&&(t[r]=n[r]);return t},bs=function n(e,t,r){if(!t)return e;if(typeof t!="object"&&typeof t!="function"){if(He(e))e.push(t);else{if(!e||typeof e!="object")return[e,t];(r&&(r.plainObjects||r.allowPrototypes)||!Ar.call(Object.prototype,t))&&(e[t]=!0)}return e}if(!e||typeof e!="object")return[e].concat(t);var a=e;return He(e)&&!He(t)&&(a=ta(e,r)),He(e)&&He(t)?(t.forEach(function(i,c){if(Ar.call(e,c)){var o=e[c];o&&typeof o=="object"&&i&&typeof i=="object"?e[c]=n(o,i,r):e.push(i)}else e[c]=i}),e):Object.keys(t).reduce(function(i,c){var o=t[c];return Ar.call(i,c)?i[c]=n(i[c],o,r):i[c]=o,i},a)},vs=function(n,e){return Object.keys(e).reduce(function(t,r){return t[r]=e[r],t},n)},$s=function(n,e,t){var r=n.replace(/\\+/g," ");if(t==="iso-8859-1")return r.replace(/%[0-9a-f]{2}/gi,unescape);try{return decodeURIComponent(r)}catch{return r}},kr=1024,ws=function(n,e,t,r,a){if(n.length===0)return n;var i=n;if(typeof n=="symbol"?i=Symbol.prototype.toString.call(n):typeof n!="string"&&(i=String(n)),t==="iso-8859-1")return escape(i).replace(/%u[0-9a-f]{4}/gi,function(d){return"%26%23"+parseInt(d.slice(2),16)+"%3B"});for(var c="",o=0;o<i.length;o+=kr){for(var s=i.length>=kr?i.slice(o,o+kr):i,l=[],p=0;p<s.length;++p){var h=s.charCodeAt(p);if(h===45||h===46||h===95||h===126||h>=48&&h<=57||h>=65&&h<=90||h>=97&&h<=122||a===qe.RFC1738&&(h===40||h===41)){l[l.length]=s.charAt(p);continue}if(h<128){l[l.length]=Ae[h];continue}if(h<2048){l[l.length]=Ae[192|h>>6]+Ae[128|63&h];continue}if(h<55296||h>=57344){l[l.length]=Ae[224|h>>12]+Ae[128|h>>6&63]+Ae[128|63&h];continue}p+=1,h=65536+((1023&h)<<10|1023&s.charCodeAt(p)),l[l.length]=Ae[240|h>>18]+Ae[128|h>>12&63]+Ae[128|h>>6&63]+Ae[128|63&h]}c+=l.join("")}return c},Ss=function(n){for(var e=[{obj:{o:n},prop:"o"}],t=[],r=0;r<e.length;++r)for(var a=e[r],i=a.obj[a.prop],c=Object.keys(i),o=0;o<c.length;++o){var s=c[o],l=i[s];typeof l=="object"&&l!==null&&t.indexOf(l)===-1&&(e.push({obj:i,prop:s}),t.push(l))}return _s(e),n},xs=function(n){return Object.prototype.toString.call(n)==="[object RegExp]"},Es=function(n){return!!n&&typeof n=="object"&&!!(n.constructor&&n.constructor.isBuffer&&n.constructor.isBuffer(n))},As=function(n,e){return[].concat(n,e)},ks=function(n,e){if(He(n)){for(var t=[],r=0;r<n.length;r+=1)t.push(e(n[r]));return t}return e(n)};$e={arrayToObject:ta,assign:vs,combine:As,compact:Ss,decode:$s,encode:ws,isBuffer:Es,isRegExp:xs,maybeMap:ks,merge:bs};var Is=Object.prototype.hasOwnProperty,ra={brackets:function(n){return n+"[]"},comma:"comma",indices:function(n,e){return n+"["+e+"]"},repeat:function(n){return n}},ke=Array.isArray,Os=Array.prototype.push,na=function(n,e){Os.apply(n,ke(e)?e:[e])},js=Date.prototype.toISOString,aa=qe.default,le={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,commaRoundTrip:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:$e.encode,encodeValuesOnly:!1,filter:void 0,format:aa,formatter:qe.formatters[aa],indices:!1,serializeDate:function(n){return js.call(n)},skipNulls:!1,strictNullHandling:!1},Ts=function(n){return typeof n=="string"||typeof n=="number"||typeof n=="boolean"||typeof n=="symbol"||typeof n=="bigint"},Ir={},Ps=function n(e,t,r,a,i,c,o,s,l,p,h,d,g,f,$,S,w,y){for(var _,v=e,x=y,j=0,T=!1;(x=x.get(Ir))!==void 0&&!T;){var R=x.get(e);if(j+=1,R!==void 0){if(R===j)throw RangeError("Cyclic object value");T=!0}x.get(Ir)===void 0&&(j=0)}if(typeof p=="function"?v=p(t,v):v instanceof Date?v=g(v):r==="comma"&&ke(v)&&(v=$e.maybeMap(v,function(k){return k instanceof Date?g(k):k})),v===null){if(c)return l&&!S?l(t,le.encoder,w,"key",f):t;v=""}if(Ts(v)||$e.isBuffer(v))return l?[$(S?t:l(t,le.encoder,w,"key",f))+"="+$(l(v,le.encoder,w,"value",f))]:[$(t)+"="+$(String(v))];var D=[];if(v===void 0)return D;if(r==="comma"&&ke(v))S&&l&&(v=$e.maybeMap(v,l)),_=[{value:v.length>0?v.join(",")||null:void 0}];else if(ke(p))_=p;else{var H=Object.keys(v);_=h?H.sort(h):H}var B=s?String(t).replace(/\\./g,"%2E"):String(t),F=a&&ke(v)&&v.length===1?B+"[]":B;if(i&&ke(v)&&v.length===0)return F+"[]";for(var W=0;W<_.length;++W){var Q=_[W],ie=typeof Q=="object"&&Q&&Q.value!==void 0?Q.value:v[Q];if(!o||ie!==null){var te=d&&s?String(Q).replace(/\\./g,"%2E"):String(Q),ge=ke(v)?typeof r=="function"?r(F,te):F:F+(d?"."+te:"["+te+"]");y.set(e,j);var A=or();A.set(Ir,y),na(D,n(ie,ge,r,a,i,c,o,s,r==="comma"&&S&&ke(v)?null:l,p,h,d,g,f,$,S,w,A))}}return D},Cs=function(n){if(!n)return le;if(n.allowEmptyArrays!==void 0&&typeof n.allowEmptyArrays!="boolean")throw TypeError("\`allowEmptyArrays\` option can only be \`true\` or \`false\`, when provided");if(n.encodeDotInKeys!==void 0&&typeof n.encodeDotInKeys!="boolean")throw TypeError("\`encodeDotInKeys\` option can only be \`true\` or \`false\`, when provided");if(n.encoder!==null&&n.encoder!==void 0&&typeof n.encoder!="function")throw TypeError("Encoder has to be a function.");var e,t=n.charset||le.charset;if(n.charset!==void 0&&n.charset!=="utf-8"&&n.charset!=="iso-8859-1")throw TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var r=qe.default;if(n.format!==void 0){if(!Is.call(qe.formatters,n.format))throw TypeError("Unknown format option provided.");r=n.format}var a=qe.formatters[r],i=le.filter;if((typeof n.filter=="function"||ke(n.filter))&&(i=n.filter),e=n.arrayFormat in ra?n.arrayFormat:"indices"in n?n.indices?"indices":"repeat":le.arrayFormat,"commaRoundTrip"in n&&typeof n.commaRoundTrip!="boolean")throw TypeError("\`commaRoundTrip\` must be a boolean, or absent");var c=n.allowDots===void 0?n.encodeDotInKeys===!0||le.allowDots:!!n.allowDots;return{addQueryPrefix:typeof n.addQueryPrefix=="boolean"?n.addQueryPrefix:le.addQueryPrefix,allowDots:c,allowEmptyArrays:typeof n.allowEmptyArrays=="boolean"?!!n.allowEmptyArrays:le.allowEmptyArrays,arrayFormat:e,charset:t,charsetSentinel:typeof n.charsetSentinel=="boolean"?n.charsetSentinel:le.charsetSentinel,commaRoundTrip:!!n.commaRoundTrip,delimiter:n.delimiter===void 0?le.delimiter:n.delimiter,encode:typeof n.encode=="boolean"?n.encode:le.encode,encodeDotInKeys:typeof n.encodeDotInKeys=="boolean"?n.encodeDotInKeys:le.encodeDotInKeys,encoder:typeof n.encoder=="function"?n.encoder:le.encoder,encodeValuesOnly:typeof n.encodeValuesOnly=="boolean"?n.encodeValuesOnly:le.encodeValuesOnly,filter:i,format:r,formatter:a,serializeDate:typeof n.serializeDate=="function"?n.serializeDate:le.serializeDate,skipNulls:typeof n.skipNulls=="boolean"?n.skipNulls:le.skipNulls,sort:typeof n.sort=="function"?n.sort:null,strictNullHandling:typeof n.strictNullHandling=="boolean"?n.strictNullHandling:le.strictNullHandling}};cn=function(n,e){var t,r=n,a=Cs(e);typeof a.filter=="function"?r=a.filter("",r):ke(a.filter)&&(t=a.filter);var i=[];if(typeof r!="object"||r===null)return"";var c=ra[a.arrayFormat],o=c==="comma"&&a.commaRoundTrip;t||(t=Object.keys(r)),a.sort&&t.sort(a.sort);for(var s=or(),l=0;l<t.length;++l){var p=t[l],h=r[p];a.skipNulls&&h===null||na(i,Ps(h,p,c,o,a.allowEmptyArrays,a.strictNullHandling,a.skipNulls,a.encodeDotInKeys,a.encode?a.encoder:null,a.filter,a.sort,a.allowDots,a.serializeDate,a.format,a.formatter,a.encodeValuesOnly,a.charset,s))}var d=i.join(a.delimiter),g=a.addQueryPrefix===!0?"?":"";return a.charsetSentinel&&(a.charset==="iso-8859-1"?g+="utf8=%26%2310003%3B&":g+="utf8=%E2%9C%93&"),d.length>0?g+d:""};var ia={},Or=Object.prototype.hasOwnProperty,sa=Array.isArray,ae={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:$e.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictDepth:!1,strictNullHandling:!1,throwOnLimitExceeded:!1},Rs=function(n){return n.replace(/&#(\\d+);/g,function(e,t){return String.fromCharCode(parseInt(t,10))})},oa=function(n,e,t){if(n&&typeof n=="string"&&e.comma&&n.indexOf(",")>-1)return n.split(",");if(e.throwOnLimitExceeded&&t>=e.arrayLimit)throw RangeError("Array limit exceeded. Only "+e.arrayLimit+" element"+(e.arrayLimit===1?"":"s")+" allowed in an array.");return n},Ns="utf8=%26%2310003%3B",Ms="utf8=%E2%9C%93",Fs=function(n,e){var t={__proto__:null},r=e.ignoreQueryPrefix?n.replace(/^\\?/,""):n;r=r.replace(/%5B/gi,"[").replace(/%5D/gi,"]");var a=e.parameterLimit===1/0?void 0:e.parameterLimit,i=r.split(e.delimiter,e.throwOnLimitExceeded?a+1:a);if(e.throwOnLimitExceeded&&i.length>a)throw RangeError("Parameter limit exceeded. Only "+a+" parameter"+(a===1?"":"s")+" allowed.");var c=-1,o=e.charset;if(e.charsetSentinel)for(s=0;s<i.length;++s)i[s].indexOf("utf8=")===0&&(i[s]===Ms?o="utf-8":i[s]===Ns&&(o="iso-8859-1"),c=s,s=i.length);for(s=0;s<i.length;++s)if(s!==c){var s,l,p,h=i[s],d=h.indexOf("]="),g=d===-1?h.indexOf("="):d+1;g===-1?(l=e.decoder(h,ae.decoder,o,"key"),p=e.strictNullHandling?null:""):(l=e.decoder(h.slice(0,g),ae.decoder,o,"key"),p=$e.maybeMap(oa(h.slice(g+1),e,sa(t[l])?t[l].length:0),function($){return e.decoder($,ae.decoder,o,"value")})),p&&e.interpretNumericEntities&&o==="iso-8859-1"&&(p=Rs(String(p))),h.indexOf("[]=")>-1&&(p=sa(p)?[p]:p);var f=Or.call(t,l);f&&e.duplicates==="combine"?t[l]=$e.combine(t[l],p):f&&e.duplicates!=="last"||(t[l]=p)}return t},Ls=function(n,e,t,r){var a=0;if(n.length>0&&n[n.length-1]==="[]"){var i=n.slice(0,-1).join("");a=Array.isArray(e)&&e[i]?e[i].length:0}for(var c=r?e:oa(e,t,a),o=n.length-1;o>=0;--o){var s,l=n[o];if(l==="[]"&&t.parseArrays)s=t.allowEmptyArrays&&(c===""||t.strictNullHandling&&c===null)?[]:$e.combine([],c);else{s=t.plainObjects?{__proto__:null}:{};var p=l.charAt(0)==="["&&l.charAt(l.length-1)==="]"?l.slice(1,-1):l,h=t.decodeDotInKeys?p.replace(/%2E/g,"."):p,d=parseInt(h,10);t.parseArrays||h!==""?!isNaN(d)&&l!==h&&String(d)===h&&d>=0&&t.parseArrays&&d<=t.arrayLimit?(s=[])[d]=c:h!=="__proto__"&&(s[h]=c):s={0:c}}c=s}return c},Ds=function(n,e,t,r){if(n){var a=t.allowDots?n.replace(/\\.([^.[]+)/g,"[$1]"):n,i=/(\\[[^[\\]]*])/,c=/(\\[[^[\\]]*])/g,o=t.depth>0&&i.exec(a),s=o?a.slice(0,o.index):a,l=[];if(s){if(!t.plainObjects&&Or.call(Object.prototype,s)&&!t.allowPrototypes)return;l.push(s)}for(var p=0;t.depth>0&&(o=c.exec(a))!==null&&p<t.depth;){if(p+=1,!t.plainObjects&&Or.call(Object.prototype,o[1].slice(1,-1))&&!t.allowPrototypes)return;l.push(o[1])}if(o){if(t.strictDepth===!0)throw RangeError("Input depth exceeded depth option of "+t.depth+" and strictDepth is true");l.push("["+a.slice(o.index)+"]")}return Ls(l,e,t,r)}},qs=function(n){if(!n)return ae;if(n.allowEmptyArrays!==void 0&&typeof n.allowEmptyArrays!="boolean")throw TypeError("\`allowEmptyArrays\` option can only be \`true\` or \`false\`, when provided");if(n.decodeDotInKeys!==void 0&&typeof n.decodeDotInKeys!="boolean")throw TypeError("\`decodeDotInKeys\` option can only be \`true\` or \`false\`, when provided");if(n.decoder!==null&&n.decoder!==void 0&&typeof n.decoder!="function")throw TypeError("Decoder has to be a function.");if(n.charset!==void 0&&n.charset!=="utf-8"&&n.charset!=="iso-8859-1")throw TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");if(n.throwOnLimitExceeded!==void 0&&typeof n.throwOnLimitExceeded!="boolean")throw TypeError("\`throwOnLimitExceeded\` option must be a boolean");var e=n.charset===void 0?ae.charset:n.charset,t=n.duplicates===void 0?ae.duplicates:n.duplicates;if(t!=="combine"&&t!=="first"&&t!=="last")throw TypeError("The duplicates option must be either combine, first, or last");return{allowDots:n.allowDots===void 0?n.decodeDotInKeys===!0||ae.allowDots:!!n.allowDots,allowEmptyArrays:typeof n.allowEmptyArrays=="boolean"?!!n.allowEmptyArrays:ae.allowEmptyArrays,allowPrototypes:typeof n.allowPrototypes=="boolean"?n.allowPrototypes:ae.allowPrototypes,allowSparse:typeof n.allowSparse=="boolean"?n.allowSparse:ae.allowSparse,arrayLimit:typeof n.arrayLimit=="number"?n.arrayLimit:ae.arrayLimit,charset:e,charsetSentinel:typeof n.charsetSentinel=="boolean"?n.charsetSentinel:ae.charsetSentinel,comma:typeof n.comma=="boolean"?n.comma:ae.comma,decodeDotInKeys:typeof n.decodeDotInKeys=="boolean"?n.decodeDotInKeys:ae.decodeDotInKeys,decoder:typeof n.decoder=="function"?n.decoder:ae.decoder,delimiter:typeof n.delimiter=="string"||$e.isRegExp(n.delimiter)?n.delimiter:ae.delimiter,depth:typeof n.depth=="number"||n.depth===!1?+n.depth:ae.depth,duplicates:t,ignoreQueryPrefix:n.ignoreQueryPrefix===!0,interpretNumericEntities:typeof n.interpretNumericEntities=="boolean"?n.interpretNumericEntities:ae.interpretNumericEntities,parameterLimit:typeof n.parameterLimit=="number"?n.parameterLimit:ae.parameterLimit,parseArrays:n.parseArrays!==!1,plainObjects:typeof n.plainObjects=="boolean"?n.plainObjects:ae.plainObjects,strictDepth:typeof n.strictDepth=="boolean"?!!n.strictDepth:ae.strictDepth,strictNullHandling:typeof n.strictNullHandling=="boolean"?n.strictNullHandling:ae.strictNullHandling,throwOnLimitExceeded:typeof n.throwOnLimitExceeded=="boolean"&&n.throwOnLimitExceeded}};ia=function(n,e){var t=qs(e);if(n===""||n==null)return t.plainObjects?{__proto__:null}:{};for(var r=typeof n=="string"?Fs(n,t):n,a=t.plainObjects?{__proto__:null}:{},i=Object.keys(r),c=0;c<i.length;++c){var o=i[c],s=Ds(o,r[o],t,typeof n=="string");a=$e.merge(a,s,t)}return t.allowSparse===!0?a:$e.compact(a)},Pt={formats:qe,parse:ia,stringify:cn};class Bs{constructor(e){this.root=e,this.requestPromises=[]}init(e){this.getToken=e}async get(e){let t=await this.getToken(),r=this.getHashCode(e);if(this.requestPromises[r])return this.requestPromises[r].promise;let a=new Promise((i,c)=>{let o;e.externalResource?o=e.url:(o=this.root+e.url,o=\`\${o}\${/\\?/.test(o)?"&":"?"}token=\${t}\${oi(e.params)}\`),L(xt).get(o,{validateStatus:function(s){return s<400}}).then(function(s){s.status!=200&&console.error(\`GUDHUB HTTP SERVICE: GET ERROR: \${s.status}\`,s),i(s.data)}).catch(function(s){console.error(\`GUDHUB HTTP SERVICE: GET ERROR: \${s.response.status}
|
|
103
|
+
\`,s),console.log("Request message: ",e),s.response&&s.response.data&&console.log("Error response data: ",s.response.data),c(s)})});return this.pushPromise(a,r),a}async post(e){let t=this.getHashCode(e);if(e.form.token=await this.getToken(),this.requestPromises[t])return this.requestPromises[t].promise;let r=new Promise((a,i)=>{L(xt).post(this.root+e.url,L(Pt).stringify(e.form),{maxBodyLength:1/0,headers:e.headers||{"Content-Type":"application/x-www-form-urlencoded"},validateStatus:function(c){return c<400}}).then(function(c){c.status!=200&&console.error(\`GUDHUB HTTP SERVICE: POST ERROR: \${c.status}\`,c),a(c.data)}).catch(function(c){console.error(\`GUDHUB HTTP SERVICE: POST ERROR: \${c.response.status}
|
|
104
|
+
\`,c),console.log("Request message: ",e),i(c)})});return this.pushPromise(r,t),r}axiosRequest(e){let t=this.getHashCode(e);if(this.requestPromises[t])return this.requestPromises[t].promise;let r=e.method?e.method.toLowerCase():"get",a=e.url,i=e.headers||{};e.form&&(i["Content-Type"]="application/x-www-form-urlencoded");let c=new Promise(async(o,s)=>{try{let{data:l}=await L(xt)[r](a,r==="post"?L(Pt).stringify(e.form)||e.body:{headers:i},r==="post"?{headers:i}:{});o(l)}catch(l){console.log("ERROR -> GUDHUB HTTP SERVICE -> SIMPLE POST :",l.message),console.log("Request message: ",e),s(l)}});return this.pushPromise(c,t),c}pushPromise(e,t){this.requestPromises[t]={promise:e,hesh:t,callback:e.then(()=>{this.destroyPromise(t)}).catch(r=>{this.destroyPromise(t)})}}destroyPromise(e){this.requestPromises=this.requestPromises.filter(t=>t.hesh!==e)}getHashCode(e){let t=0,r=L(Pt).stringify(e);if(r.length==0)return t;for(let a=0;a<r.length;a++)t=(t<<5)-t+r.charCodeAt(a),t&=t;return"h"+t}}function jr(n){let e="";for(let t in n)n.hasOwnProperty(t)&&n[t]&&(e+="."+n[t]);return e?e.substring(1):"any"}function Us(n,e,t){return n==null||typeof n!="string"?(console.log(\`Listener type is "undefined" or not have actual 'type' for subscribe\`),!1):e==null||typeof e!="object"?(console.log(\`Listener destination is "undefined" or not have actual 'type' for subscribe\`),!1):typeof t=="function"||(console.log("Listener is not a function for subscribe!"),!1)}class Ws{constructor(){this.subscribers={},this.messageBox={}}on(e,t,r){return Us(e,t,r)&&e.split(" ").map(a=>a+":"+jr(t)).forEach(a=>{this.subscribers[a]||(this.subscribers[a]=new Set),this.subscribers[a].add(r),this.checkMessageBox(a)}),this}emit(e,t,r,a){return e.split(" ").forEach(i=>{let c=i+":"+jr(t),o=!1;if(this.subscribers[c]){if(this.subscribers[c].size==0)return this.messageBox[c]=[e,t,r,a,o],this;this.subscribers[c].forEach(function(s){s(null,r,a)})}else this.messageBox[c]=[e,t,r,a,o]}),this}onRoot(e,t,r){return this.on(e,t,r)}destroy(e,t,r){return e.split(" ").forEach(a=>{let i=a+":"+jr(t);this.subscribers[i]&&r&&this.subscribers[i].delete(r),this.subscribers[i]&&!r&&delete this.subscribers[i]}),this}checkMessageBox(e){this.cleanMesssageBox(),this.messageBox[e]&&setTimeout(()=>{this.messageBox[e]&&(this.emit(...this.messageBox[e]),this.messageBox[e][4]=!0)},0)}cleanMesssageBox(){for(let e in this.messageBox)this.messageBox[e][4]&&delete this.messageBox[e]}}function Gs(n,e,t){return[{data_type:"text",name:"Text",icon:"text_icon",url:e+"/"+n+"text_data.js",type:"gh_element",technology:"angular"},{data_type:"text_opt",name:"Options",icon:"option_gh_element",url:e+"/"+n+"text_options_data.js",type:"gh_element",technology:"angular"},{data_type:"number",name:"Number",icon:"number",url:e+"/"+n+"number_data.js",type:"gh_element",technology:"angular"},{data_type:"task_board",name:"Task Board",icon:"task_board",url:e+"/"+n+"task_board_data.js",type:"gh_element",technology:"angular"},{data_type:"visualizer",name:"visualizer",icon:"visualizer",url:e+"/"+n+"visualizer_data.js",type:"gh_element",technology:"angular"},{data_type:"enterprice_visualizer",name:"Enterprice Visualizer",icon:"visualizer",private:!0,url:e+"/"+n+"enterprice_visualizer_data.js",type:"gh_element",technology:"angular"},{data_type:"email",name:"Email",icon:"email",url:e+"/"+n+"email_data.js",type:"gh_element",technology:"angular"},{data_type:"date",name:"Date",icon:"date_gh_element",url:e+"/"+n+"date_data.js",type:"gh_element",technology:"angular"},{data_type:"radio_button",name:"Radio Button",icon:"radio_button_gh_element",url:e+"/"+n+"radio_button_data.js",type:"gh_element",technology:"angular"},{data_type:"radio_icon",name:"Radio icon",icon:"radio_icon_gh_element",url:e+"/"+n+"radio_icon_data.js",type:"gh_element",technology:"angular"},{data_type:"twilio_phone",name:"Twilio Phone",icon:"phone_twilio_gh_element",url:e+"/"+n+"twilio_phone_data.js",type:"gh_element",technology:"angular"},{data_type:"twilio_autodialer",name:"Twilio Auto Dialer",icon:"twilio_dialer",url:e+"/"+n+"twillio_autodialer_data.js",type:"gh_element",technology:"angular"},{data_type:"color",name:"Color",icon:"paint_gh_element",url:e+"/"+n+"color_data.js",type:"gh_element",technology:"angular"},{data_type:"charts",name:"Charts",icon:"graph_gh_element",url:e+"/"+n+"charts_data.js",type:"gh_element",technology:"angular"},{data_type:"funnel_chart",name:"Funnel chart",icon:"funnel_chart_gh_element",url:e+"/"+n+"funnel_chart_data.js",type:"gh_element",technology:"angular"},{data_type:"add_items_from_template",name:"Add items from template",icon:"contact_second",url:e+"/"+n+"add_items_from_template_data.js",type:"gh_element",technology:"angular"},{data_type:"item_ref",name:"Reference",icon:"reference",url:e+"/"+n+"itemRef_data.js",type:"gh_element",technology:"angular"},{data_type:"calendar",name:"Calendar",icon:"calendar",js:"https://gudhub.com/modules/FullCalendar-Gh-Element/dist/main.js?t=6",css:"https://gudhub.com/modules/FullCalendar-Gh-Element/dist/style.css?t=1",type:"gh_element",technology:"class"},{data_type:"data_ref",name:"Data Reference",icon:"data_reference",url:e+"/"+n+"data_ref_data.js",type:"gh_element",technology:"angular"},{data_type:"table",name:"Table",icon:"table",url:e+"/"+n+"table_data.js",type:"gh_element",technology:"angular"},{data_type:"tile",name:"Tile table",icon:"tile_table",url:e+"/"+n+"tile_data.js",type:"gh_element",technology:"angular"},{data_type:"file",name:"File",icon:"box",url:e+"/"+n+"file_data.js",type:"gh_element",technology:"angular"},{data_type:"image",name:"Image",icon:"image",url:e+"/"+n+"image_data.js",type:"gh_element",technology:"angular"},{data_type:"text_editor",name:"Text Editor",icon:"square",url:e+"/"+n+"text_editor_data.js",type:"gh_element",technology:"angular"},{data_type:"tinymse",name:"Text editor MSE",icon:"tag",url:e+"/"+n+"tinymse_data.js",type:"gh_element",technology:"angular"},{data_type:"duration",name:"Duration",icon:"number_gh_element",url:e+"/"+n+"duration_data.js",type:"gh_element",technology:"angular"},{data_type:"user",name:"User",icon:"user_gh_element",url:e+"/"+n+"user_data.js",type:"gh_element",technology:"angular"},{data_type:"app",name:"App",icon:"app",url:e+"/"+n+"application_data.js",type:"gh_element",technology:"angular"},{data_type:"field",name:"Field",icon:"field_gh_element",url:e+"/"+n+"field_data.js",type:"gh_element",technology:"angular"},{data_type:"available",name:"Available",icon:"availible_gh_element",url:e+"/"+n+"available_data.js",type:"gh_element",technology:"angular"},{data_type:"view_list",name:"View List",icon:"view_list",url:e+"/"+n+"view_list_data.js",type:"gh_element",technology:"angular"},{data_type:"calculator",name:"Calculator",icon:"calculator",url:e+"/"+n+"calculator_data.js",type:"gh_element",technology:"angular"},{data_type:"string_join",name:"String Joiner",icon:"string_join_gh_element",url:e+"/"+n+"string_joiner_data.js",type:"gh_element",technology:"angular"},{data_type:"signature",name:"Signature",icon:"signature",url:e+"/"+n+"signature_data.js",type:"gh_element",technology:"angular"},{data_type:"sendEmail",name:"Send Email",icon:"send_email_gh_element",url:e+"/"+n+"send_email_data.js",type:"gh_element",technology:"angular"},{data_type:"boolean",name:"Yes/No",icon:"boolen_gh_element",url:e+"/"+n+"boolean_data.js",type:"gh_element",technology:"angular"},{data_type:"product_gallery",name:"Product gallery",icon:"product_gallery",url:e+"/"+n+"product_gallery_data.js",type:"gh_element",technology:"angular"},{data_type:"online_inventory",name:"Online inventory",icon:"slab",url:e+"/"+n+"online_inventory_data.js",type:"gh_element",technology:"angular"},{data_type:"3d_edges",name:"3D Edges",icon:"3d_edges_gh_element",url:e+"/"+n+"3d_edges_data.js",type:"gh_element",technology:"angular"},{data_type:"color_list",name:"Color list",icon:"circular_gh_element",url:e+"/"+n+"color_list_data.js",type:"gh_element",technology:"angular"},{data_type:"go_to_link",name:"Go to Link",icon:"go_to_link",url:e+"/"+n+"go_to_link_data.js",type:"gh_element",technology:"angular"},{data_type:"go_to_view",name:"Go to View",icon:"go_to_view",url:e+"/"+n+"go_to_view_data.js",type:"gh_element",technology:"angular"},{data_type:"range",name:"Range",icon:"range_gh_element",url:e+"/"+n+"range_data.js",type:"gh_element",technology:"angular"},{data_type:"barcode",name:"Barcode",icon:"barcode_gh_element",url:e+"/"+n+"barcode_data.js",type:"gh_element",technology:"angular"},{data_type:"item_remote_add",name:"Item remote add",icon:"remote_add_gh_element",url:e+"/"+n+"item_remote_add_data.js",type:"gh_element",technology:"angular"},{data_type:"item_remote_update",name:"Item remote update",icon:"remote_update_gh_element",url:e+"/"+n+"item_remote_update_data.js",type:"gh_element",technology:"angular"},{data_type:"timeline",name:"Timeline",icon:"timeline",url:e+"/"+n+"timeline_data.js",type:"gh_element",technology:"angular"},{data_type:"delete_item",name:"Delete Item",icon:"rubbish",url:e+"/"+n+"delete_action.js",type:"gh_element",technology:"angular"},{data_type:"print_doc",name:"Print document",icon:"print",url:e+"/"+n+"print_doc_action.js",type:"gh_element",technology:"angular"},{data_type:"open_item",name:"Open Item",icon:"delete",private:!0,url:e+"/"+n+"open_item_action.js",type:"gh_element",technology:"angular"},{data_type:"edit_template",name:"Edit template",icon:"delete",private:!0,url:e+"/"+n+"edit_template_action.js",type:"gh_element",technology:"angular"},{data_type:"open_app",private:!0,name:"Open App",icon:"delete",url:e+"/"+n+"open_app_action.js",type:"gh_element",technology:"angular"},{data_type:"user_settings",private:!0,name:"User Settings",icon:"delete",url:e+"/"+n+"user_settings_action.js",type:"gh_element",technology:"angular"},{data_type:"app_sharing",name:"Sharing",icon:"sharing",url:e+"/"+n+"sharing_action.js",type:"gh_element",technology:"angular"},{data_type:"app_constructor",private:!0,name:"App constructor",icon:"app_constructor",url:e+"/"+n+"app_constructor_action.js",type:"gh_element",technology:"angular"},{data_type:"app_settings",name:"App Settings",icon:"configuration",url:e+"/"+n+"app_settings_action.js",type:"gh_element",technology:"angular"},{data_type:"export_csv",name:"Export CSV",icon:"export_csv",url:e+"/"+n+"export_csv.js",type:"gh_element",technology:"angular"},{data_type:"import_csv",name:"Import CSV",icon:"import_csv",url:e+"/"+n+"import_csv.js",type:"gh_element",technology:"angular"},{data_type:"add_items",name:"Add Items",icon:"plus",url:e+"/"+n+"add_items_action.js",type:"gh_element",technology:"angular"},{data_type:"update_items",name:"Update Items",icon:"update",url:e+"/"+n+"update_items_action.js",type:"gh_element",technology:"angular"},{data_type:"install_app",name:"Install",icon:"install",url:e+"/"+n+"install_app_action.js",type:"gh_element",technology:"angular"},{data_type:"search_action",name:"Search",icon:"search",url:e+"/"+n+"search_action.js",type:"gh_element",technology:"angular"},{data_type:"filter_table",name:"Table filter",icon:"filter",url:e+"/"+n+"filter_table_action.js",type:"gh_element",technology:"angular"},{data_type:"slider",name:"Slider",icon:"slider",url:e+"/"+n+"slider_data.js",type:"gh_element",technology:"angular"},{data_type:"clone_item",name:"Clone Item",icon:"double_plus",url:e+"/"+n+"clone_item_action.js",type:"gh_element",technology:"angular"},{data_type:"close",name:"Close",icon:"cross",url:e+"/"+n+"close_action.js",type:"gh_element",technology:"angular"},{data_type:"phone",name:"Phone",icon:"phone_thin",url:e+"/"+n+"phone_data.js",type:"gh_element",technology:"angular"},{data_type:"link",name:"Link",icon:"link_gh_element",url:e+"/"+n+"link_data.js",type:"gh_element",technology:"angular"},{data_type:"sheduling",name:"Sheduling",icon:"scheduling",url:e+"/"+n+"sheduling_data.js",type:"gh_element",technology:"angular"},{data_type:"qrcode",name:"QR Code",icon:"qr_code",url:e+"/"+n+"qrcode_data.js",type:"gh_element",technology:"angular"},{data_type:"graph2d",name:"Graph",icon:"graph",url:e+"/"+n+"graph2d_data.js",type:"gh_element",technology:"angular"},{data_type:"quote_tool",name:"Quote tool",icon:"quoters",url:e+"/"+n+"quote_tool_data.js",type:"gh_element",technology:"angular"},{data_type:"cards",name:"Cards",icon:"cards",url:e+"/"+n+"cards_data.js",type:"gh_element",technology:"angular"},{data_type:"jsonConstructor",name:"Json Constructor",icon:"button",url:e+"/"+n+"json_constructor_data.js",type:"gh_element",technology:"angular"},{data_type:"button",name:"Button",icon:"button",js:"https://gudhub.com/modules/button_action/button_action.js?t=1",type:"gh_element",technology:"class"},{data_type:"editorjs",name:"EditorJS",icon:"code_editor",js:"https://gudhub.com/modules/Editor-Js/dist/main.js?t=2",css:"https://gudhub.com/modules/Editor-Js/dist/style.css?t=2",type:"gh_element",technology:"class"},{data_type:"filter_advanced",name:"Filter Advanced",icon:"filter_advanced",url:e+"/"+n+"filter_advanced_data.js",type:"gh_element",technology:"angular"},{data_type:"code_editor",name:"Code Editor",icon:"code_editor",url:e+"/"+n+"code_editor_data.js",type:"gh_element",technology:"angular"},{data_type:"icon",name:"Icon",icon:"icon_gh_element",url:e+"/"+n+"icon_data.js",type:"gh_element",technology:"angular"},{data_type:"quoteRequest",name:"Quote Request",icon:"invoices",url:e+"/"+n+"quote_request_data.js",type:"gh_element",technology:"angular"},{data_type:"view_container",name:"View Container",icon:"pencil",url:e+"/"+n+"view_container_data.js",type:"gh_element",technology:"angular"},{data_type:"element_ref",name:"Element Reference",icon:"cloudSync_gh_element",url:e+"/"+n+"element_ref_data.js",type:"gh_element",technology:"angular"},{data_type:"quote_tool_objects_renderer",name:"Quote Tool Renderer",icon:"l_counter",url:e+"/"+n+"quote_tool_objects_renderer_data.js",type:"gh_element",technology:"angular"},{data_type:"quote_tool_objects_renderer_generator",name:"Quote Tool Parts Generator",icon:"l_counter_arrow",url:e+"/"+n+"quote_tool_objects_renderer_generator_data.js",type:"gh_element",technology:"angular"},{data_type:"trigger",name:"Trigger",icon:"job",url:e+"/"+n+"trigger_data.js",type:"gh_element",technology:"angular"},{data_type:"voting",name:"Voting",icon:"like_gh_element",url:e+"/"+n+"voting_data.js",type:"gh_element",technology:"angular"},{data_type:"view_tabs",name:"View Tab",icon:"tabs",url:e+"/"+n+"view_tabs.js",type:"gh_element",technology:"angular"},{data_type:"filter_tabs",name:"Filter Tabs",icon:"filter_tabs_gh_element",url:e+"/"+n+"filter_tabs.js",type:"gh_element",technology:"angular"},{data_type:"gps_coords",name:"GPS Coords",icon:"location_gh_element",url:e+"/"+n+"gps_coords.js",type:"gh_element",technology:"angular"},{data_type:"google_map",name:"Google Map",icon:"location",url:e+"/"+n+"google_map_data.js",type:"gh_element",technology:"angular"},{data_type:"data_migrations",name:"Data migrations",icon:"view_list_gh_element",url:e+"/"+n+"data_migrations.js",type:"gh_element",technology:"angular"},{data_type:"additional_settings",name:"Additional Settings",icon:"",private:!0,url:e+"/"+n+"gh_additional_settings_data.js",type:"gh_element",technology:"angular"},{data_type:"send_request",name:"Send Request",icon:"send_request_gh_element",url:e+"/"+n+"send_request_data.js",type:"gh_element",technology:"angular"},{data_type:"webcam",name:"Web camera",icon:"webcam_gh_element",url:e+"/"+n+"webcam_data.js",type:"gh_element",technology:"angular"},{data_type:"json_viewer",name:"JSON viewer",icon:"json_gh_element",url:e+"/"+n+"json_viewer_data.js",type:"gh_element",technology:"angular"},{data_type:"notifications",name:"Notifications",icon:"full_gh_element",url:e+"/"+n+"notifications_data.js",type:"gh_element",technology:"angular"},{data_type:"api",name:"API",icon:"job",url:e+"/"+n+"api_data.js",type:"gh_element",technology:"angular"},{data_type:"smart_input",name:"Smart Input",icon:"roket",url:e+"/"+n+"smart_input_data.js",type:"gh_element",technology:"angular"},{data_type:"json_editor",name:"JSON Editor",icon:"code",url:e+"/"+n+"json_editor_data.js",type:"gh_element",technology:"angular"},{data_type:"grapes_html_editor",name:"Grapes Html Editor",icon:"code_editor",url:e+"/"+n+"grapes_html_editor_data.js",type:"gh_element",technology:"angular"},{data_type:"quiz",name:"Quiz",icon:"quiz_gh_element",url:e+"/"+n+"quiz_data.js",type:"gh_element",technology:"angular"},{data_type:"password_input",name:"Password",icon:"lock_gh_element",url:e+"/"+n+"password_input_data.js",type:"gh_element",technology:"angular"},{data_type:"vs_code",name:"VS Code",icon:"code_editor",url:e+"/"+n+"vs_code_data.js",type:"gh_element",technology:"angular"},{data_type:"nested_list",name:"Nested List",icon:"scheduling",js:"https://gudhub.com/modules/Nested-List/dist/main.js?t=2",css:"https://gudhub.com/modules/Nested-List/dist/style.css?t=2",type:"gh_element",technology:"class"},{data_type:"countertop_smart_quote",name:"Countertop Smart Quote",icon:"quoters",url:e+"/"+n+"countertop_smart_quote_data.js",type:"gh_element",technology:"angular"},{data_type:"markdown_viewer",name:"Markdown viewer",icon:"code_editor",js:"https://gudhub.com/modules/markdown-it-gh-element/dist/main.js?t=1",css:"https://gudhub.com/modules/markdown-it-gh-element/dist/style.css?t=1",type:"gh_element",technology:"class"},{data_type:"html_viewer",name:"HTML Viewer",icon:"code_editor",js:"https://gudhub.com/modules/HTML-Viewer/dist/main.js?t=1",css:"https://gudhub.com/modules/HTML-Viewer/dist/style.css?t=1",type:"gh_element",technology:"class"},{data_type:"element_customizer",name:"Element Customizer",icon:"pencil",url:e+"/"+n+"element_customizer_data.js",type:"gh_element",technology:"angular"},{data_type:"task",name:"Task",icon:"table",url:e+"/"+n+"task_data.js",type:"gh_element",technology:"angular"},{data_type:"cron_picker",name:"Cron Picker",icon:"table",js:"https://gudhub.com/modules/Cron-Picker/dist/main.js?t=2",css:"https://gudhub.com/modules/Cron-Picker/dist/style.css?t=2",type:"gh_element",technology:"class"},{data_type:"balance_sheet",name:"Balance Sheet",icon:"table",js:"https://gudhub.com/modules/balance-sheet/dist/main.js?t=2",css:"https://gudhub.com/modules/balance-sheet/dist/style.css?t=2",type:"gh_element",technology:"class"},{data_type:"quote_form",name:"Quote Form",icon:"table",js:"https://gudhub.com/modules/countertop-quote-form/dist/main.js",css:"https://gudhub.com/modules/countertop-quote-form/dist/style.css",type:"gh_element",technology:"class"},{data_type:"static_nested_list",name:"Nested Filter",icon:"scheduling",js:"https://gudhub.com/modules/nested-filter/dist/main.js?t=1",css:"https://gudhub.com/modules/nested-filter/dist/style.css?t=1",type:"gh_element",technology:"class"},{data_type:"conversations",name:"Conversations",icon:"timeline",js:"https://gudhub.com/modules/conversation/dist/main.js?t=1",css:"https://gudhub.com/modules/conversation/dist/style.css?t=1",type:"gh_element",technology:"class"},{data_type:"study_journal",name:"Study Journal",icon:"timeline",js:"https://gudhub.com/modules/Study-Journal/dist/main.js?t=1",css:"https://gudhub.com/modules/Study-Journal/dist/style.css",type:"gh_element",technology:"class"},{data_type:"study_schedule",name:"Study Schedule",icon:"timeline",js:"https://gudhub.com/modules/Study-Schedule/dist/main.js?t=1",css:"https://gudhub.com/modules/Study-Schedule/dist/style.css?t=1",type:"gh_element",technology:"class"},{data_type:"avatar",name:"Avatar",icon:"user",js:"https://gudhub.com/modules/Gh-Avatar/dist/main.js?t=1",css:"https://gudhub.com/modules/Gh-Avatar/dist/style.css?t=1",type:"gh_element",technology:"class"},{data_type:"text_area",name:"Text Area",icon:"text_icon",js:"https://gudhub.com/modules/text-area-ghe/dist/main.js?t=3",css:"https://gudhub.com/modules/text-area-ghe/dist/style.css",type:"gh_element",technology:"class"},{data_type:"resource_calendar",name:"Resource Сalendar",icon:"calendar",url:e+"/"+n+"resource_calendar_data.js",type:"gh_element",technology:"angular"},{data_type:"visualizer_with_control_panel",name:"Visualizer With Control Panel",icon:"visualizer",url:e+"/"+n+"visualizer_with_control_panel_data.js",type:"gh_element",technology:"angular"},{data_type:"svg_to_pdf",name:"SVG To PDF",icon:"box",js:"https://gudhub.com/modules/SVG-to-PDF-Gh-Element/dist/main.js",css:"https://gudhub.com/modules/SVG-to-PDF-Gh-Element/dist/style.css",type:"gh_element",technology:"class"},{data_type:"recycle_bin",name:"Recycle Bin",icon:"recycle_bin",url:e+"/"+n+"recycle_bin_data.js",type:"gh_element",technology:"angular"},{data_type:"assessment_journual",name:"Assessment Journual",icon:"text_icon",js:"https://gudhub.com/modules/Assessment-Journal/dist/main.js",css:"https://gudhub.com/modules/Assessment-Journal/dist/style.css",type:"gh_element",technology:"class"},{data_type:"API",name:"API",url:e+"/"+t+"api_node.js",type:"automation",icon:"automation_api",private:!0},{data_type:"Calculator",name:"Calculator",url:e+"/"+t+"calculator.js",type:"automation",icon:"automation_calculator"},{data_type:"CompareItems",name:"Compare Items",url:e+"/"+t+"compare_items.js",type:"automation",icon:"automation_compare_items"},{data_type:"Constants",name:"Constants",url:e+"/"+t+"constants.js",type:"automation",icon:"automation_constants"},{data_type:"CreateFiles",name:"Create Files",url:e+"/"+t+"create_files.js",type:"automation",icon:"automation_create_files"},{data_type:"CreateItemsApi",name:"Create Items Api",url:e+"/"+t+"create_item_api.js",type:"automation",icon:"automation_create_items_api"},{data_type:"FileDuplicate",name:"File Duplicate",url:e+"/"+t+"file_duplicate.js",type:"automation",icon:"automation_file_duplicate"},{data_type:"Filter",name:"Filter",url:e+"/"+t+"filter_node.js",type:"automation",icon:"filter"},{data_type:"GetItemByItemRef",name:"Get Item By Item Ref",url:e+"/"+t+"get_item_by_item_ref.js",type:"automation",icon:"automation_get_item_by_item_ref"},{data_type:"GetItems",name:"Get Items",url:e+"/"+t+"get_items.js",type:"automation",icon:"automation_get_items"},{data_type:"GhElementNode",name:"Gh Element Node",url:e+"/"+t+"gh_element_node.js",type:"automation",icon:"automation_gh_element_node",private:!0,created_for:["GhElement"]},{data_type:"IfCondition",name:"If Condition",url:e+"/"+t+"if_condition.js",type:"automation",icon:"automation_if_condition"},{data_type:"ItemConstructor",name:"Item Constructor",url:e+"/"+t+"item_constructor.js",type:"automation",icon:"automation_item_constructor"},{data_type:"ItemDestructor",name:"Item Destructor",url:e+"/"+t+"item_destructor.js",type:"automation",icon:"automation_item_destructor"},{data_type:"JSONScheme",name:"JSON Scheme",url:e+"/"+t+"json_scheme.js",type:"automation",icon:"automation_json_scheme"},{data_type:"MergeItems",name:"Merge Items",url:e+"/"+t+"merge_items.js",type:"automation",icon:"automation_merge_items"},{data_type:"MessageConstructor",name:"Message Constructor",url:e+"/"+t+"message_constructor.js",type:"automation",icon:"automation_message_constructor"},{data_type:"ObjectToItem",name:"Object To Item",url:e+"/"+t+"obj_to_item.js",type:"automation",icon:"automation_object_to_item"},{data_type:"ObjectConstructor",name:"Object Constructor",url:e+"/"+t+"object_constructor.js",type:"automation",icon:"automation_object_constructor"},{data_type:"ObjectDestructor",name:"Object Destructor",url:e+"/"+t+"object_destructor.js",type:"automation",icon:"automation_object_destructor"},{data_type:"PopulateElement",name:"Populate Element",url:e+"/"+t+"populate_element.js",type:"automation",icon:"automation_populate_element",private:!0,created_for:["GhElement"]},{data_type:"PopulateItems",name:"Populate Items",url:e+"/"+t+"populate_items.js",type:"automation",icon:"automation_populate_items"},{data_type:"PopulateWithDate",name:"Populate With Date",url:e+"/"+t+"populate_with_date.js",type:"automation",icon:"automation_populate_with_date"},{data_type:"PopulateWithItemRef",name:"Populate with Item Ref",url:e+"/"+t+"populate_with_item_ref.js",type:"automation",icon:"automation_populate_with_item_ref"},{data_type:"PopUpForm",name:"Pop Up Form",url:e+"/"+t+"popup_form.js",type:"automation",icon:"automation_pop_up_form",private:!0,created_for:["Quiz","GhElement","SmartInput","Iterator"]},{data_type:"QuizForm",name:"Quiz Form",url:e+"/"+t+"quiz_form.js",type:"automation",icon:"automation_quiz_form",private:!0,created_for:["Quiz"]},{data_type:"QuizNode",name:"Quiz Node",url:e+"/"+t+"quiz_node.js",type:"automation",icon:"automation_quiz_node",private:!0},{data_type:"Request",name:"Request",url:e+"/"+t+"request_node.js",type:"automation",icon:"automation_request"},{data_type:"Response",name:"Response",url:e+"/"+t+"response_node.js",type:"automation",icon:"automation_response",private:!0,created_for:["API"]},{data_type:"SmartInput",name:"Smart Input",url:e+"/"+t+"smart_input.js",type:"automation",icon:"automation_smart_input",private:!0},{data_type:"Trigger",name:"Trigger",url:e+"/"+t+"trigger_node.js",type:"automation",icon:"automation_trigger",private:!0},{data_type:"TwilioSMS",name:"Twilio SMS",url:e+"/"+t+"twilio_sms.js",type:"automation",icon:"automation_twilio"},{data_type:"TwilioAuth",name:"Twilio Auth",url:e+"/"+t+"twilio_auth.js",type:"automation",icon:"table"},{data_type:"TwilioDevice",name:"Twilio Device",url:e+"/"+t+"twilio_device.js",type:"automation",icon:"table"},{data_type:"UpdateItemsApi",name:"Update Items Api",url:e+"/"+t+"update_items_api.js",type:"automation",icon:"automation_update_items_api"},{data_type:"GoogleCalendar",name:"Google Calendar",url:e+"/"+t+"google_calendar.js",type:"automation",icon:"calendar"},{data_type:"VerifyEmail",name:"Verify email",url:e+"/"+t+"verify_email.js",type:"automation",icon:"check_in_circle"},{data_type:"Iterator",name:"Iterator",url:e+"/"+t+"iterator.js",type:"automation",icon:"update"},{data_type:"IteratorInput",name:"Iterator Input",url:e+"/"+t+"iterator_input.js",type:"automation",icon:"arrow_right",private:!0},{data_type:"IteratorOutput",name:"Iterator Output",url:e+"/"+t+"iterator_output.js",type:"automation",icon:"arrow_right",private:!0},{data_type:"SendEmail",name:"Send email",url:e+"/"+t+"send_email.js",type:"automation",icon:"email"},{data_type:"FileReader",name:"File Reader",url:e+"/"+t+"file_reader.js",type:"automation",icon:"file"},{data_type:"WebsitesChecker",name:"Websites Checker",url:e+"/"+t+"websites_checker.js",type:"automation",icon:"world"},{data_type:"VoiceMachineDetection",name:"Voice Machine Detection",url:e+"/"+t+"voice_machine_detection.js",type:"automation",icon:"automation_calculator"},{data_type:"Task",name:"Task",url:e+"/"+t+"task.js",type:"automation",icon:"automation_calculator",private:!0},{data_type:"DeleteItems",name:"Delete Items",url:e+"/"+t+"delete_items.js",type:"automation",icon:"rubbish"},{data_type:"GoToItem",name:"Go To Item",url:e+"/"+t+"go_to_item.js",type:"automation",icon:"cursor_point"},{data_type:"FireWorks",name:"Fire Works",url:e+"/"+t+"fireworks_node.js",type:"automation",icon:"weeding_party"},{data_type:"SendMessage",name:"Send Message",url:e+"/"+t+"send_message.js",type:"automation",icon:"speech_bubble"},{data_type:"TurboSMS",name:"Turbo SMS",url:e+"/"+t+"turbo_sms.js",type:"automation",icon:"email"},{data_type:"JsCode",name:"Js Code",url:e+"/"+t+"js_code.js",type:"automation",icon:"code_editor"},{data_type:"AskChatGPT",name:"Ask ChatGPT",url:e+"/"+t+"ask_chat_gpt.js",type:"automation",icon:"ask_chat_gpt"},{data_type:"TeachChatGPT",name:"Teach ChatGPT",url:e+"/"+t+"teach_chat_gpt.js",type:"automation",icon:"teach_chat_gpt"}]}class zs{constructor(e,t,r){this.apps_list=[],this.users_list=[],this.user={},this.modulesList=Gs(e,t,r),this.ghComponentsPromises=[]}getMainStorage(){return this}getAppsList(){return this.apps_list}getUser(){return this.user}getUsersList(){return this.users_list}getModulesList(e,t,r){return e===void 0?this.modulesList:t==!1?this.modulesList.filter(a=>a.created_for?a.type===e&&a.private&&a.created_for.includes(r):a.type===e&&!a.private):this.modulesList.filter(a=>a.type===e)}getModuleUrl(e){return this.modulesList.find(t=>t.data_type==e)}setUser(e){this.user=e,this.users_list.push(e)}updateUser(e={}){e.avatar_128&&(e.avatar_128=e.avatar_128+"?"+new Date().getTime()),e.avatar_512&&(e.avatar_512=e.avatar_512+"?"+new Date().getTime()),this.user={...this.user,...e},this.users_list=this.users_list.filter(t=>t.user_id!=e.user_id),this.users_list.push(this.user)}unsetUser(){this.user={}}getApp(e){for(let t=0;t<this.apps_list.length;t++)if(this.apps_list[t].app_id==e)return this.apps_list[t]}unsetApps(){this.apps_list=[]}updateApp(e){return this.apps_list=this.apps_list.map(t=>t.app_id==e.app_id?e:t),this.apps_list}deleteApp(e){return this.apps_list=this.apps_list.filter(t=>t.app_id!=e),this.apps_list}async updateItemsInApp(e,t){let r=await this.getApp(t);return r&&(r.items_list=updateItems(e,r.items_list,this.pipeService.emit.bind(this.pipeService),t),this.updateApp(r)),r}async addItemsToApp(e,t){let r=await this.getApp(t);return r&&(r.items_list.push(...e),this.updateApp(r),this.pipeService.emit("gh_items_update",{app_id:t},e)),r}async deleteItemsInApp(e,t){let r=await this.getApp(t);return r&&(r.items_list=r.items_list.filter(a=>!e.find(i=>i.item_id==a.item_id)),this.updateApp(r)),r}}var ca={};ca=function(){throw Error("ws does not work in the browser. Browser clients must use the native WebSocket object")};var de=I("5xozB");class Vs{constructor(e,t){this.websocket=null,this.connected=!1,this.queue=[],this.url=e,this.auth=t,this.heartBeatTimeStemp=1e13,this.ALLOWED_HEART_BEAT_DELEY=12e3,this.firstHeartBeat=!0,this.reload=!0,this.isBrowser=de.IS_BROWSER_MAIN_THREAD}async addSubscription(e){let t=await this.auth.getToken(),r=\`token=\${t}/~/app_id=\${e}\`;this.connected&&this.websocket.send(r),this.queue.push(e)}async onOpen(){this.reload=!0,console.log("websocket opened"),this.connected=!0;let e=await this.auth.getToken();this.queue.forEach(t=>{let r=\`token=\${e}/~/app_id=\${t}\`;this.websocket.send(r)})}onError(e){console.log("websocket error: ",e),this.websocket.close()}onClose(){console.log("websocket close"),this.connected=!1;try{this.initWebSocket(this.onMassageHandler,this.refreshAppsHandler)}catch(e){console.log(e)}}async onMessage(e){let t=this.isBrowser?e.data:e;if(t.match(/HeartBeat/)){let r=new Date().getTime()-this.heartBeatTimeStemp;this.ALLOWED_HEART_BEAT_DELEY<r?await this.onConnectionLost():(this.websocket.send("HeartBeat"),this.heartBeatTimeStemp=new Date().getTime())}if(this.firstHeartBeat&&(this.connectionChecker(),this.firstHeartBeat=!1),t.match(/[{}]/)){let r=JSON.parse(t),a=await this.auth.getToken();r.token!=a&&this.onMassageHandler(r)}}initWebSocket(e,t){this.onMassageHandler=e,this.refreshAppsHandler=t,this.isBrowser?(this.websocket=new WebSocket(this.url),this.websocket.onopen=this.onOpen.bind(this),this.websocket.onerror=this.onError.bind(this),this.websocket.onclose=this.onClose.bind(this),this.websocket.onmessage=this.onMessage.bind(this)):(this.websocket=new(L(ca))(this.url),this.websocket.on("open",this.onOpen),this.websocket.on("error",this.onError),this.websocket.on("close",this.onClose),this.websocket.on("message",this.onMessage)),console.log("websocket initialized")}connectionChecker(){setInterval(async()=>{let e=new Date().getTime()-this.heartBeatTimeStemp;this.ALLOWED_HEART_BEAT_DELEY<e&&await this.onConnectionLost()},1e3)}async onConnectionLost(){try{await this.auth.getVersion(),this.reload&&(this.reload=!1,console.log("Connected"),this.heartBeatTimeStemp=1e13,this.websocket.close())}catch(e){console.log(e)}}}async function Hs(n,e,t,r={}){let a=[],i={variableMethodcurrent_app:()=>[r.current_app_id||r.app_id],variableMethodelement_app:()=>[r.element_app_id],variableMethodcurrent_item:()=>[\`\${r.current_app_id||r.app_id}.\${r.item_id}\`],variableMethoduser_id:()=>[e.getUser().user_id],variableMethoduser_email:o=>[e.getUser().username],variableMethodtoday(o){let s=new Date,l=new Date(s.getFullYear(),s.getMonth(),s.getDate()),p=new Date(s.getFullYear(),s.getMonth(),s.getDate()+1);return[l.valueOf().toString()+":"+p.valueOf().toString()]},variableMethodvariable:o=>[r[o]]};if(n)for(let o of n)if(o)switch(o.input_type){case"variable":for(let l of(o.valuesArray=[],o==null?void 0:o.input_value.split(","))){let p=i[o.input_type+"Method"+l];typeof p=="function"?o.valuesArray?o.valuesArray.push(...p()):o.valuesArray=p():o.valuesArray?o.valuesArray.push(...i.variableMethodvariable(l)):o.valuesArray=i.variableMethodvariable(l)}a.push(o);break;case"field":let s=await c({app_id:r.current_app_id||r.app_id,item_id:r.item_id,field_id:o.input_value});s!=null&&o.valuesArray.push(s),a.push(o);break;default:a.push(o)}else a.push(o);function c(o){return new Promise(s=>{t.on("gh_value_get",o,function l(p,h){t.destroy("gh_value_get",o,l),s(h)}).emit("gh_value_get",{},o)})}return a}function Ne(n){return Array.isArray?Array.isArray(n):pa(n)==="[object Array]"}function Js(n){if(typeof n=="string")return n;let e=n+"";return e=="0"&&1/n==-1/0?"-0":e}function Ks(n){return n==null?"":Js(n)}function Ie(n){return typeof n=="string"}function la(n){return typeof n=="number"}function Qs(n){return n===!0||n===!1||Ys(n)&&pa(n)=="[object Boolean]"}function ua(n){return typeof n=="object"}function Ys(n){return ua(n)&&n!==null}function ye(n){return n!=null}function Tr(n){return!n.trim().length}function pa(n){return n==null?n===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(n)}let Xs="Incorrect 'index' type",Zs=n=>\`Invalid value for key \${n}\`,eo=n=>\`Pattern length exceeds max of \${n}.\`,to=n=>\`Missing \${n} property in key\`,ro=n=>\`Property 'weight' in key '\${n}' must be a positive integer\`,da=Object.prototype.hasOwnProperty;class no{constructor(e){this._keys=[],this._keyMap={};let t=0;e.forEach(r=>{let a=fa(r);t+=a.weight,this._keys.push(a),this._keyMap[a.id]=a,t+=a.weight}),this._keys.forEach(r=>{r.weight/=t})}get(e){return this._keyMap[e]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function fa(n){let e=null,t=null,r=null,a=1,i=null;if(Ie(n)||Ne(n))r=n,e=ha(n),t=Pr(n);else{if(!da.call(n,"name"))throw Error(to("name"));let c=n.name;if(r=c,da.call(n,"weight")&&(a=n.weight)<=0)throw Error(ro(c));e=ha(c),t=Pr(c),i=n.getFn}return{path:e,id:t,weight:a,src:r,getFn:i}}function ha(n){return Ne(n)?n:n.split(".")}function Pr(n){return Ne(n)?n.join("."):n}function ao(n,e){let t=[],r=!1,a=(i,c,o)=>{if(ye(i))if(c[o]){let s=i[c[o]];if(ye(s))if(o===c.length-1&&(Ie(s)||la(s)||Qs(s)))t.push(Ks(s));else if(Ne(s)){r=!0;for(let l=0,p=s.length;l<p;l+=1)a(s[l],c,o+1)}else c.length&&a(s,c,o+1)}else t.push(i)};return a(n,Ie(e)?e.split("."):e,0),r?t:t[0]}var q={...{isCaseSensitive:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(n,e)=>n.score===e.score?n.idx<e.idx?-1:1:n.score<e.score?-1:1},...{includeMatches:!1,findAllMatches:!1,minMatchCharLength:1},...{location:0,threshold:.6,distance:100},...{useExtendedSearch:!1,getFn:ao,ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1}};let io=/[^ ]+/g;function so(n=1,e=3){let t=new Map,r=Math.pow(10,e);return{get(a){let i=a.match(io).length;if(t.has(i))return t.get(i);let c=parseFloat(Math.round(1/Math.pow(i,.5*n)*r)/r);return t.set(i,c),c},clear(){t.clear()}}}class Cr{constructor({getFn:e=q.getFn,fieldNormWeight:t=q.fieldNormWeight}={}){this.norm=so(t,3),this.getFn=e,this.isCreated=!1,this.setIndexRecords()}setSources(e=[]){this.docs=e}setIndexRecords(e=[]){this.records=e}setKeys(e=[]){this.keys=e,this._keysMap={},e.forEach((t,r)=>{this._keysMap[t.id]=r})}create(){!this.isCreated&&this.docs.length&&(this.isCreated=!0,Ie(this.docs[0])?this.docs.forEach((e,t)=>{this._addString(e,t)}):this.docs.forEach((e,t)=>{this._addObject(e,t)}),this.norm.clear())}add(e){let t=this.size();Ie(e)?this._addString(e,t):this._addObject(e,t)}removeAt(e){this.records.splice(e,1);for(let t=e,r=this.size();t<r;t+=1)this.records[t].i-=1}getValueForItemAtKeyId(e,t){return e[this._keysMap[t]]}size(){return this.records.length}_addString(e,t){if(!ye(e)||Tr(e))return;let r={v:e,i:t,n:this.norm.get(e)};this.records.push(r)}_addObject(e,t){let r={i:t,$:{}};this.keys.forEach((a,i)=>{let c=a.getFn?a.getFn(e):this.getFn(e,a.path);if(ye(c)){if(Ne(c)){let o=[],s=[{nestedArrIndex:-1,value:c}];for(;s.length;){let{nestedArrIndex:l,value:p}=s.pop();if(ye(p))if(Ie(p)&&!Tr(p)){let h={v:p,i:l,n:this.norm.get(p)};o.push(h)}else Ne(p)&&p.forEach((h,d)=>{s.push({nestedArrIndex:d,value:h})})}r.$[i]=o}else if(Ie(c)&&!Tr(c)){let o={v:c,n:this.norm.get(c)};r.$[i]=o}}}),this.records.push(r)}toJSON(){return{keys:this.keys,records:this.records}}}function ma(n,e,{getFn:t=q.getFn,fieldNormWeight:r=q.fieldNormWeight}={}){let a=new Cr({getFn:t,fieldNormWeight:r});return a.setKeys(n.map(fa)),a.setSources(e),a.create(),a}function oo(n,{getFn:e=q.getFn,fieldNormWeight:t=q.fieldNormWeight}={}){let{keys:r,records:a}=n,i=new Cr({getFn:e,fieldNormWeight:t});return i.setKeys(r),i.setIndexRecords(a),i}function Gt(n,{errors:e=0,currentLocation:t=0,expectedLocation:r=0,distance:a=q.distance,ignoreLocation:i=q.ignoreLocation}={}){let c=e/n.length;if(i)return c;let o=Math.abs(r-t);return a?c+o/a:o?1:c}function co(n=[],e=q.minMatchCharLength){let t=[],r=-1,a=-1,i=0;for(let c=n.length;i<c;i+=1){let o=n[i];o&&r===-1?r=i:o||r===-1||((a=i-1)-r+1>=e&&t.push([r,a]),r=-1)}return n[i-1]&&i-r>=e&&t.push([r,i-1]),t}let Je=32;function lo(n,e,t,{location:r=q.location,distance:a=q.distance,threshold:i=q.threshold,findAllMatches:c=q.findAllMatches,minMatchCharLength:o=q.minMatchCharLength,includeMatches:s=q.includeMatches,ignoreLocation:l=q.ignoreLocation}={}){let p;if(e.length>Je)throw Error(eo(Je));let h=e.length,d=n.length,g=Math.max(0,Math.min(r,d)),f=i,$=g,S=o>1||s,w=S?Array(d):[];for(;(p=n.indexOf(e,$))>-1;)if(f=Math.min(Gt(e,{currentLocation:p,expectedLocation:g,distance:a,ignoreLocation:l}),f),$=p+h,S){let T=0;for(;T<h;)w[p+T]=1,T+=1}$=-1;let y=[],_=1,v=h+d,x=1<<h-1;for(let T=0;T<h;T+=1){let R=0,D=v;for(;R<D;)Gt(e,{errors:T,currentLocation:g+D,expectedLocation:g,distance:a,ignoreLocation:l})<=f?R=D:v=D,D=Math.floor((v-R)/2+R);v=D;let H=Math.max(1,g-D+1),B=c?d:Math.min(g+D,d)+h,F=Array(B+2);F[B+1]=(1<<T)-1;for(let W=B;W>=H;W-=1){let Q=W-1,ie=t[n.charAt(Q)];if(S&&(w[Q]=+!!ie),F[W]=(F[W+1]<<1|1)&ie,T&&(F[W]|=(y[W+1]|y[W])<<1|1|y[W+1]),F[W]&x&&(_=Gt(e,{errors:T,currentLocation:Q,expectedLocation:g,distance:a,ignoreLocation:l}))<=f){if(f=_,($=Q)<=g)break;H=Math.max(1,2*g-$)}}if(Gt(e,{errors:T+1,currentLocation:g,expectedLocation:g,distance:a,ignoreLocation:l})>f)break;y=F}let j={isMatch:$>=0,score:Math.max(.001,_)};if(S){let T=co(w,o);T.length?s&&(j.indices=T):j.isMatch=!1}return j}function uo(n){let e={};for(let t=0,r=n.length;t<r;t+=1){let a=n.charAt(t);e[a]=(e[a]||0)|1<<r-t-1}return e}class ga{constructor(e,{location:t=q.location,threshold:r=q.threshold,distance:a=q.distance,includeMatches:i=q.includeMatches,findAllMatches:c=q.findAllMatches,minMatchCharLength:o=q.minMatchCharLength,isCaseSensitive:s=q.isCaseSensitive,ignoreLocation:l=q.ignoreLocation}={}){if(this.options={location:t,threshold:r,distance:a,includeMatches:i,findAllMatches:c,minMatchCharLength:o,isCaseSensitive:s,ignoreLocation:l},this.pattern=s?e:e.toLowerCase(),this.chunks=[],!this.pattern.length)return;let p=(d,g)=>{this.chunks.push({pattern:d,alphabet:uo(d),startIndex:g})},h=this.pattern.length;if(h>Je){let d=0,g=h%Je,f=h-g;for(;d<f;)p(this.pattern.substr(d,Je),d),d+=Je;if(g){let $=h-Je;p(this.pattern.substr($),$)}}else p(this.pattern,0)}searchIn(e){let{isCaseSensitive:t,includeMatches:r}=this.options;if(t||(e=e.toLowerCase()),this.pattern===e){let f={isMatch:!0,score:0};return r&&(f.indices=[[0,e.length-1]]),f}let{location:a,distance:i,threshold:c,findAllMatches:o,minMatchCharLength:s,ignoreLocation:l}=this.options,p=[],h=0,d=!1;this.chunks.forEach(({pattern:f,alphabet:$,startIndex:S})=>{let{isMatch:w,score:y,indices:_}=lo(e,f,$,{location:a+S,distance:i,threshold:c,findAllMatches:o,minMatchCharLength:s,includeMatches:r,ignoreLocation:l});w&&(d=!0),h+=y,w&&_&&(p=[...p,..._])});let g={isMatch:d,score:d?h/this.chunks.length:1};return d&&r&&(g.indices=p),g}}class Be{constructor(e){this.pattern=e}static isMultiMatch(e){return ya(e,this.multiRegex)}static isSingleMatch(e){return ya(e,this.singleRegex)}search(){}}function ya(n,e){let t=n.match(e);return t?t[1]:null}class po extends Be{constructor(e){super(e)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(e){let t=e===this.pattern;return{isMatch:t,score:+!t,indices:[0,this.pattern.length-1]}}}class fo extends Be{constructor(e){super(e)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(e){let t=e.indexOf(this.pattern)===-1;return{isMatch:t,score:+!t,indices:[0,e.length-1]}}}class ho extends Be{constructor(e){super(e)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\\^"(.*)"$/}static get singleRegex(){return/^\\^(.*)$/}search(e){let t=e.startsWith(this.pattern);return{isMatch:t,score:+!t,indices:[0,this.pattern.length-1]}}}class mo extends Be{constructor(e){super(e)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\\^"(.*)"$/}static get singleRegex(){return/^!\\^(.*)$/}search(e){let t=!e.startsWith(this.pattern);return{isMatch:t,score:+!t,indices:[0,e.length-1]}}}class go extends Be{constructor(e){super(e)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\\$$/}static get singleRegex(){return/^(.*)\\$$/}search(e){let t=e.endsWith(this.pattern);return{isMatch:t,score:+!t,indices:[e.length-this.pattern.length,e.length-1]}}}class yo extends Be{constructor(e){super(e)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\\$$/}static get singleRegex(){return/^!(.*)\\$$/}search(e){let t=!e.endsWith(this.pattern);return{isMatch:t,score:+!t,indices:[0,e.length-1]}}}class _a extends Be{constructor(e,{location:t=q.location,threshold:r=q.threshold,distance:a=q.distance,includeMatches:i=q.includeMatches,findAllMatches:c=q.findAllMatches,minMatchCharLength:o=q.minMatchCharLength,isCaseSensitive:s=q.isCaseSensitive,ignoreLocation:l=q.ignoreLocation}={}){super(e),this._bitapSearch=new ga(e,{location:t,threshold:r,distance:a,includeMatches:i,findAllMatches:c,minMatchCharLength:o,isCaseSensitive:s,ignoreLocation:l})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(e){return this._bitapSearch.searchIn(e)}}class ba extends Be{constructor(e){super(e)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(e){let t,r=0,a=[],i=this.pattern.length;for(;(t=e.indexOf(this.pattern,r))>-1;)r=t+i,a.push([t,r-1]);let c=!!a.length;return{isMatch:c,score:+!c,indices:a}}}let Rr=[po,ba,ho,mo,yo,go,fo,_a],va=Rr.length,_o=/ +(?=(?:[^\\"]*\\"[^\\"]*\\")*[^\\"]*$)/,bo="|";function vo(n,e={}){return n.split(bo).map(t=>{let r=t.trim().split(_o).filter(i=>i&&!!i.trim()),a=[];for(let i=0,c=r.length;i<c;i+=1){let o=r[i],s=!1,l=-1;for(;!s&&++l<va;){let p=Rr[l],h=p.isMultiMatch(o);h&&(a.push(new p(h,e)),s=!0)}if(!s)for(l=-1;++l<va;){let p=Rr[l],h=p.isSingleMatch(o);if(h){a.push(new p(h,e));break}}}return a})}let $o=new Set([_a.type,ba.type]);class wo{constructor(e,{isCaseSensitive:t=q.isCaseSensitive,includeMatches:r=q.includeMatches,minMatchCharLength:a=q.minMatchCharLength,ignoreLocation:i=q.ignoreLocation,findAllMatches:c=q.findAllMatches,location:o=q.location,threshold:s=q.threshold,distance:l=q.distance}={}){this.query=null,this.options={isCaseSensitive:t,includeMatches:r,minMatchCharLength:a,findAllMatches:c,ignoreLocation:i,location:o,threshold:s,distance:l},this.pattern=t?e:e.toLowerCase(),this.query=vo(this.pattern,this.options)}static condition(e,t){return t.useExtendedSearch}searchIn(e){let t=this.query;if(!t)return{isMatch:!1,score:1};let{includeMatches:r,isCaseSensitive:a}=this.options;e=a?e:e.toLowerCase();let i=0,c=[],o=0;for(let s=0,l=t.length;s<l;s+=1){let p=t[s];c.length=0,i=0;for(let h=0,d=p.length;h<d;h+=1){let g=p[h],{isMatch:f,indices:$,score:S}=g.search(e);if(f){if(i+=1,o+=S,r){let w=g.constructor.type;$o.has(w)?c=[...c,...$]:c.push($)}}else{o=0,i=0,c.length=0;break}}if(i){let h={isMatch:!0,score:o/i};return r&&(h.indices=c),h}}return{isMatch:!1,score:1}}}let Nr=[];function So(...n){Nr.push(...n)}function Mr(n,e){for(let t=0,r=Nr.length;t<r;t+=1){let a=Nr[t];if(a.condition(n,e))return new a(n,e)}return new ga(n,e)}let zt={AND:"$and",OR:"$or"},Fr={PATH:"$path",PATTERN:"$val"},Lr=n=>!!(n[zt.AND]||n[zt.OR]),xo=n=>!!n[Fr.PATH],Eo=n=>!Ne(n)&&ua(n)&&!Lr(n),$a=n=>({[zt.AND]:Object.keys(n).map(e=>({[e]:n[e]}))});function wa(n,e,{auto:t=!0}={}){let r=a=>{let i=Object.keys(a),c=xo(a);if(!c&&i.length>1&&!Lr(a))return r($a(a));if(Eo(a)){let s=c?a[Fr.PATH]:i[0],l=c?a[Fr.PATTERN]:a[s];if(!Ie(l))throw Error(Zs(s));let p={keyId:Pr(s),pattern:l};return t&&(p.searcher=Mr(l,e)),p}let o={children:[],operator:i[0]};return i.forEach(s=>{let l=a[s];Ne(l)&&l.forEach(p=>{o.children.push(r(p))})}),o};return Lr(n)||(n=$a(n)),r(n)}function Ao(n,{ignoreFieldNorm:e=q.ignoreFieldNorm}){n.forEach(t=>{let r=1;t.matches.forEach(({key:a,norm:i,score:c})=>{let o=a?a.weight:null;r*=Math.pow(c===0&&o?Number.EPSILON:c,(o||1)*(e?1:i))}),t.score=r})}function ko(n,e){let t=n.matches;e.matches=[],ye(t)&&t.forEach(r=>{if(!ye(r.indices)||!r.indices.length)return;let{indices:a,value:i}=r,c={indices:a,value:i};r.key&&(c.key=r.key.src),r.idx>-1&&(c.refIndex=r.idx),e.matches.push(c)})}function Io(n,e){e.score=n.score}function Oo(n,e,{includeMatches:t=q.includeMatches,includeScore:r=q.includeScore}={}){let a=[];return t&&a.push(ko),r&&a.push(Io),n.map(i=>{let{idx:c}=i,o={item:e[c],refIndex:c};return a.length&&a.forEach(s=>{s(i,o)}),o})}class it{constructor(e,t={},r){this.options={...q,...t},this.options.useExtendedSearch,this._keyStore=new no(this.options.keys),this.setCollection(e,r)}setCollection(e,t){if(this._docs=e,t&&!(t instanceof Cr))throw Error(Xs);this._myIndex=t||ma(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(e){ye(e)&&(this._docs.push(e),this._myIndex.add(e))}remove(e=()=>!1){let t=[];for(let r=0,a=this._docs.length;r<a;r+=1){let i=this._docs[r];e(i,r)&&(this.removeAt(r),r-=1,a-=1,t.push(i))}return t}removeAt(e){this._docs.splice(e,1),this._myIndex.removeAt(e)}getIndex(){return this._myIndex}search(e,{limit:t=-1}={}){let{includeMatches:r,includeScore:a,shouldSort:i,sortFn:c,ignoreFieldNorm:o}=this.options,s=Ie(e)?Ie(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e);return Ao(s,{ignoreFieldNorm:o}),i&&s.sort(c),la(t)&&t>-1&&(s=s.slice(0,t)),Oo(s,this._docs,{includeMatches:r,includeScore:a})}_searchStringList(e){let t=Mr(e,this.options),{records:r}=this._myIndex,a=[];return r.forEach(({v:i,i:c,n:o})=>{if(!ye(i))return;let{isMatch:s,score:l,indices:p}=t.searchIn(i);s&&a.push({item:i,idx:c,matches:[{score:l,value:i,norm:o,indices:p}]})}),a}_searchLogical(e){let t=wa(e,this.options),r=(o,s,l)=>{if(!o.children){let{keyId:h,searcher:d}=o,g=this._findMatches({key:this._keyStore.get(h),value:this._myIndex.getValueForItemAtKeyId(s,h),searcher:d});return g&&g.length?[{idx:l,item:s,matches:g}]:[]}let p=[];for(let h=0,d=o.children.length;h<d;h+=1){let g=r(o.children[h],s,l);if(g.length)p.push(...g);else if(o.operator===zt.AND)return[]}return p},a=this._myIndex.records,i={},c=[];return a.forEach(({$:o,i:s})=>{if(ye(o)){let l=r(t,o,s);l.length&&(i[s]||(i[s]={idx:s,item:o,matches:[]},c.push(i[s])),l.forEach(({matches:p})=>{i[s].matches.push(...p)}))}}),c}_searchObjectList(e){let t=Mr(e,this.options),{keys:r,records:a}=this._myIndex,i=[];return a.forEach(({$:c,i:o})=>{if(!ye(c))return;let s=[];r.forEach((l,p)=>{s.push(...this._findMatches({key:l,value:c[p],searcher:t}))}),s.length&&i.push({idx:o,item:c,matches:s})}),i}_findMatches({key:e,value:t,searcher:r}){if(!ye(t))return[];let a=[];if(Ne(t))t.forEach(({v:i,i:c,n:o})=>{if(!ye(i))return;let{isMatch:s,score:l,indices:p}=r.searchIn(i);s&&a.push({score:l,key:e,value:i,idx:c,norm:o,indices:p})});else{let{v:i,n:c}=t,{isMatch:o,score:s,indices:l}=r.searchIn(i);o&&a.push({score:s,key:e,value:i,norm:c,indices:l})}return a}}function jo(n,e){let[t,r,a]=n.split(":"),[i,c]=e.split(":"),o=6371,s=Vt(i-t),l=Vt(c-r),p=Math.sin(s/2)*Math.sin(s/2)+Math.cos(Vt(t))*Math.cos(Vt(i))*Math.sin(l/2)*Math.sin(l/2),h=2*Math.atan2(Math.sqrt(p),Math.sqrt(1-p))*o;return Number(a)>=h}function Vt(n){return Math.PI/180*n}function To({type:n,date:e=0,match:t=!0}={},r){if(!r&&n)return!1;let a=new Date,i=!0;switch(n){case"day":let c=st(e),o=st(e+1);i=c<=r&&r<o;break;case"days":if(e<0){let d=st(1);i=st(-6)<=r&&r<d}else{let d=st(),g=st(7);i=d<=r&&r<g}break;case"day_week":i=e===new Date(r).getDay();break;case"week":let s=a.getDate()-a.getDay(),l=s+(e==-2?13:6),[p,h]=Po(a.setDate(s+7*e),new Date().setDate(l+7*e));i=p<=r&&r<=h;break;case"month":if(a.getFullYear()!==new Date(r).getFullYear())return!1;i=a.getMonth()+e===new Date(r).getMonth();break;case"year":i=a.getFullYear()+e===new Date(r).getFullYear();break;default:return!0}return t?i:!i}function Po(n,e){return[new Date(n),new Date(e)]}function st(n=0){let e=new Date;return new Date(e.getFullYear(),e.getMonth(),e.getDate()+n).valueOf()}function Sa(n,e){if(n&&n.length)return e?n.filter(t=>t.fields.find(r=>r.index_value&&r.index_value.toLowerCase().indexOf(e.toLowerCase())!==-1)):n}it.version="6.6.2",it.createIndex=ma,it.parseIndex=oo,it.config=q,it.parseQuery=wa,So(wo);let xa=new it([]);function Co(n,e){return xa.setCollection(e),!!xa.search(n).length}function Ro(n,e){let t=new Wo;return n&&n.length?t.filter(e,n):[]}class No{changeBehavior(e){switch(e){case"contain_or":this._checkFn=function(t,r){return r.some(a=>t.some(i=>i.indexOf(a)!==-1))};break;case"contain_and":this._checkFn=function(t,r){return r.every(a=>t.some(i=>i.indexOf(a)!==-1))};break;case"not_contain_or":this._checkFn=function(t,r){return r.some(a=>t.every(i=>i.indexOf(a)===-1))};break;case"not_contain_and":this._checkFn=function(t,r){return r.every(a=>t.every(i=>i.indexOf(a)===-1))};break;case"equal_or":this._checkFn=function(t,r){return!!t.length&&t.some(a=>r.some(i=>a==i))};break;case"equal_and":this._checkFn=function(t,r){if(!t.length)return!1;let a=new Set(r);for(;t.length&&a.size;){let i=t.pop();a.has(i)&&a.delete(i)}return!a.size};break;case"not_equal_or":this._checkFn=function(t,r){if(!t.length)return!0;let a=new Set(r);for(;t.length&&a.size;){let i=t.pop();if(!a.has(i))return!0}return!1};break;case"not_equal_and":this._checkFn=function(t,r){let a=new Set(r);for(;t.length&&a.size;){let i=t.pop();if(a.has(i))return!1}return!0};break;case"bigger":this._checkFn=function(t,r){return r.some(a=>t.every(i=>i>a))};break;case"lower":this._checkFn=function(t,r){return r.some(a=>t.every(i=>i<a))};break;case"range":this._checkFn=function(t,r){return r.some(a=>t.every(i=>a.start<=i&&i<a.end))};break;case"value":this._checkFn=function(t,r){return r.some(a=>t.some(i=>i==a))};break;case"search":this._checkFn=function(t,r){return r.some(a=>Co(a,t))};break;case"phone_equal_or":this._checkFn=function(t,r){return!!t.length&&r.some(a=>t.some(i=>i.replace(/[^0-9]/g,"").indexOf(a.replace(/[^0-9]/g,""))!==-1))};break;case"distance":this._checkFn=function(t,r){return r.some(a=>t.some(i=>jo(a,i)))};break;case"date_in":case"date_out":this._checkFn=function(t,r){return r.some(a=>t.some(i=>To(a,i)))};break;case"recurring_date":this._checkFn=function(t,r){return r.some(a=>t.some(i=>gudhub.checkRecurringDate(i,a)))};break;case"month_before_date":this._checkFn=function(t,r){return r.some(a=>t.some(i=>{let c=new Date(i),o=new Date(a),s=new Date(o);return s.setMonth(s.getMonth()-1),!(isNaN(c)||isNaN(s)||isNaN(o))&&c>=s&&c<=o}))}}return this}check(e){return this.changeBehavior(e.getCheckOption())._checkFn(e.getEntity(),e.getFilterValues())}}class Dr{convert(e){return[Number(e)]}convertFilterValue(e){return Number(e)}}class Mo extends Dr{convertFilterValue(e){return{start:Number(e.split(":")[0]),end:Number(e.split(":")[1])}}}class Fo{convert(e){return String(e??"").toLowerCase().split(",")}convertFilterValue(e){return e===0?"0":String(e||"").toLowerCase()}}class Lo extends Dr{convertFilterValue(e){let[t,r,a]=e.split(":");return{type:t,date:Number(r),match:!!Number(a)}}}class Do{convert(e){return[String(!!e)]}convertFilterValue(e){return String(e)}}class qo{convert(e){return[Number(e)]}convertFilterValue(e){return String(e)}}class Bo{convert(e){return[Number(e)]}convertFilterValue(e){return Number(e)}}class Uo{constructor(){this._strategies={stringStrategy:new Fo,numberStrategy:new Dr,booleanStrategy:new Do,rangeStrategy:new Mo,dateStrategy:new Lo,recurringDateStrategy:new qo,monthBeforeDate:new Bo}}setStrategy(e){switch(this._checkOption=e,e){case"contain_or":case"contain_and":case"not_contain_or":case"not_contain_and":case"equal_or":case"equal_and":case"not_equal_or":case"not_equal_and":case"phone_equal_or":case"distance":case"search":this._currentStrategy=this._strategies.stringStrategy;break;case"bigger":case"lower":this._currentStrategy=this._strategies.numberStrategy;break;case"range":this._currentStrategy=this._strategies.rangeStrategy;break;case"date_in":case"date_out":this._currentStrategy=this._strategies.dateStrategy;break;case"value":this._currentStrategy=this._strategies.booleanStrategy;break;case"recurring_date":this._currentStrategy=this._strategies.recurringDateStrategy;case"month_before_date":this._currentStrategy=this._strategies.monthBeforeDate}return this}setEntity(e){return this._entity=this._currentStrategy.convert(e),this}getEntity(){return this._entity}setFilterValues(e){let t=Array.isArray(e)?e:[e];return this._filterValues=t.map(r=>this._currentStrategy.convertFilterValue(r)),this}getFilterValues(){return this._filterValues}getCheckOption(){return this._checkOption}}class Wo{constructor(){}filter(e,t){let r=this.checkIfAllFiltersHaveAndStrategy(e),a=[],i=e.filter(function(c){return c.valuesArray.length});for(let c of t){let o=!0;for(let s=0;s<i.length;s++){let l=i[s],p=c.fields.find(function(g){return l.field_id==g.field_id}),h=new Uo,d=new No;switch(h.setStrategy(l.search_type).setEntity(p&&p.field_value!=null?p.field_value:null).setFilterValues(l.valuesArray),l.boolean_strategy){case"and":default:o=o&&d.check(h);break;case"or":o=o||d.check(h)}if(!o&&r)break}o&&a.push(c)}return a.length||e.length&&!a.length?a:t}checkIfAllFiltersHaveAndStrategy(e){return e.every(t=>!t.boolean_strategy||t.boolean_strategy=="and")}}function Go(n,e){let t=[],r=[];if(n.length>0?n.forEach(a=>{r.push(a)}):r=e,r.length>0){r.forEach((a,i)=>{for(let c=0;c<e.length;c++)a.field_id==e[c].field_id&&(t.push(a.field_id),r[i]=gudhub.mergeObjects(e[c],a))});for(let a=0;a<e.length;a++)t.includes(e[a].field_id)||r.push(e[a])}return r}var qr={};function zo(n,e){let t=[];return e.forEach(r=>{let a=[];try{a=L(qr).paths(n,r.json_path),t.push({field_id:r.field_id,json_paths:a,json_paths_length:a.length})}catch(i){console.log(i)}}),t.sort((r,a)=>a.json_paths_length-r.json_paths_length),Ho(t).map(r=>({fields:r.fields.map(a=>({field_id:a.field_id,field_value:L(qr).value(n,a.json_path)}))}))}function Vo(n,e){let t=[];return e.forEach(r=>{t.push({path_to_compare:r,match_coefficient:0})}),n.forEach((r,a)=>{for(var i=0;i<t.length;i++)t[i].path_to_compare[a]==r&&(t[i].match_coefficient+=1/(a+1))}),t.sort((r,a)=>a.match_coefficient-r.match_coefficient),t[0].path_to_compare}function Ho(n){let e=[];return n.length&&n[0].json_paths.forEach(t=>{let r={fields:[]};n.forEach(a=>{r.fields.push({field_id:a.field_id,json_path:Vo(t,a.json_paths)})}),e.push(r)}),e}function Jo(n,e,t,r,a,i){let c=[],o=function(s,l){let p=Ke(l,a);p&&(p.field_value=i+"."+s.item_id,c.push(l))};return t.forEach(s=>{n.forEach(l=>{Xo(l,s,e,r,o)})}),c}function Ko(n,e,t){let r=JSON.parse(JSON.stringify(n)),a=JSON.parse(JSON.stringify(e)),i=[],c=function(p,h){i.push(Yo(p,h))},o=function(p){i.push(p)},s=function(p){i.push(p)};return t?Ea(r,a,t,c,o,s):Aa(r,a,c,o,s,function(p){i.push(p)}),i}function Qo(n,e,t){let r=JSON.parse(JSON.stringify(n)),a=JSON.parse(JSON.stringify(e)),i={is_items_diff:!1,new_src_items:[],diff_src_items:[],same_items:[],trash_src_items:[]},c=function(p){i.diff_src_items.push(p)},o=function(p){i.same_items.push(p)},s=function(p){i.new_src_items.push(p)},l=function(p){i.trash_src_items.push(p)};return t&&Ea(r,a,t,c,o,s),t||Aa(r,a,c,o,s,null,l),i.is_items_diff=i.new_src_items.length>0||i.diff_src_items.length>0,i}function Yo(n,e){return n.fields.forEach(t=>{let r=Ke(e,t.field_id);r?(r.field_value=t.field_value,t.history&&r.history&&(r.history=t.history.concat(r.history))):e.fields.push(t)}),e}function Ea(n,e,t,r,a,i){n.forEach(c=>{let o=!0,s=Ke(c,t).field_value;e.forEach(l=>{s==Ke(l,t).field_value&&(o=!1,ka(c,l,r,a))}),o&&i(c)})}function Aa(n,e,t,r,a,i,c){let o=new Zo(e);if(n.forEach(s=>{let l=o.pullItemIndex(s.item_id);l!=null?ka(s,e[l],t,r,c):(s.trash&&c(s),s.trash||a(s))}),i)for(let[s,l]of Object.entries(o.itemsMap))i(e[l])}function ka(n,e,t,r,a){let i=!0;for(let c=0;c<n.fields.length;c++){let o=Ke(e,n.fields[c].field_id);o?o.field_value!=n.fields[c].field_value&&(i=i&&!1):i=i&&!1}i&&(n.trash&&a(n,e),n.trash||r(n,e)),i||(n.trash&&a(n,e),n.trash||t(n,e))}function Xo(n,e,t,r,a){Ke(n,t).field_value==Ke(e,r).field_value&&a(n,e)}function Ke(n,e){let t=null;for(let r=0;r<n.fields.length;r++)e==n.fields[r].field_id&&(t=n.fields[r]);return t}(function(n){qr=n()})(function(){return function n(e,t,r){function a(o,s){if(!t[o]){if(!e[o]){var l=void 0;if(!s&&l)return l(o,!0);if(i)return i(o,!0);var p=Error("Cannot find module '"+o+"'");throw p.code="MODULE_NOT_FOUND",p}var h=t[o]={exports:{}};e[o][0].call(h.exports,function(d){return a(e[o][1][d]||d)},h,h.exports,n,e,t,r)}return t[o].exports}for(var i=void 0,c=0;c<r.length;c++)a(r[c]);return a}({"./aesprim":[function(n,e,t){(function(r,a){a(t!==void 0?t:r.esprima={})})(this,function(r){var a,i,c,o,s,l,p,h,d,g,f,$,S,w,y,_,v,x;function j(u,m){if(!u)throw Error("ASSERT: "+m)}function T(u){return u>=48&&u<=57}function R(u){return"0123456789abcdefABCDEF".indexOf(u)>=0}function D(u){return"01234567".indexOf(u)>=0}function H(u){return u===32||u===9||u===11||u===12||u===160||u>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(u)>=0}function B(u){return u===10||u===13||u===8232||u===8233}function F(u){return u==64||u===36||u===95||u>=65&&u<=90||u>=97&&u<=122||u===92||u>=128&&p.NonAsciiIdentifierStart.test(String.fromCharCode(u))}function W(u){return u===36||u===95||u>=65&&u<=90||u>=97&&u<=122||u>=48&&u<=57||u===92||u>=128&&p.NonAsciiIdentifierPart.test(String.fromCharCode(u))}function Q(u){switch(u){case"class":case"enum":case"export":case"extends":case"import":case"super":return!0;default:return!1}}function ie(u){switch(u){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}}function te(u){return u==="eval"||u==="arguments"}function ge(u){if(g&&ie(u))return!0;switch(u.length){case 2:return u==="if"||u==="in"||u==="do";case 3:return u==="var"||u==="for"||u==="new"||u==="try"||u==="let";case 4:return u==="this"||u==="else"||u==="case"||u==="void"||u==="with"||u==="enum";case 5:return u==="while"||u==="break"||u==="catch"||u==="throw"||u==="const"||u==="yield"||u==="class"||u==="super";case 6:return u==="return"||u==="typeof"||u==="delete"||u==="switch"||u==="export"||u==="import";case 7:return u==="default"||u==="finally"||u==="extends";case 8:return u==="function"||u==="continue"||u==="debugger";case 10:return u==="instanceof";default:return!1}}function A(u,m,b,E,O){var P;j(typeof b=="number","Comment must have valid position"),!(v.lastCommentStart>=b)&&(v.lastCommentStart=b,P={type:u,value:m},x.range&&(P.range=[b,E]),x.loc&&(P.loc=O),x.comments.push(P),x.attachComment&&(x.leadingComments.push(P),x.trailingComments.push(P)))}function k(u){var m,b,E,O;for(m=f-u,b={start:{line:$,column:f-S-u}};f<w;)if(E=d.charCodeAt(f),++f,B(E)){x.comments&&(O=d.slice(m+u,f-1),b.end={line:$,column:f-S-1},A("Line",O,m,f-1,b)),E===13&&d.charCodeAt(f)===10&&++f,++$,S=f;return}x.comments&&(O=d.slice(m+u,f),b.end={line:$,column:f-S},A("Line",O,m,f,b))}function C(){var u,m,b,E;for(x.comments&&(u=f-2,m={start:{line:$,column:f-S-2}});f<w;)if(B(b=d.charCodeAt(f)))b===13&&d.charCodeAt(f+1)===10&&++f,++$,S=++f,f>=w&&V({},l.UnexpectedToken,"ILLEGAL");else if(b===42){if(d.charCodeAt(f+1)===47){++f,++f,x.comments&&(E=d.slice(u+2,f-2),m.end={line:$,column:f-S},A("Block",E,u,f,m));return}++f}else++f;V({},l.UnexpectedToken,"ILLEGAL")}function Y(){var u,m;for(m=f===0;f<w;)if(H(u=d.charCodeAt(f)))++f;else if(B(u))++f,u===13&&d.charCodeAt(f)===10&&++f,++$,S=f,m=!0;else if(u===47)if((u=d.charCodeAt(f+1))===47)++f,++f,k(2),m=!0;else if(u===42)++f,++f,C();else break;else if(m&&u===45)if(d.charCodeAt(f+1)===45&&d.charCodeAt(f+2)===62)f+=3,k(3);else break;else if(u===60)if(d.slice(f+1,f+4)==="!--")++f,++f,++f,++f,k(4);else break;else break}function ne(u){var m,b,E,O=0;for(m=0,b=u==="u"?4:2;m<b;++m){if(!(f<w&&R(d[f])))return"";E=d[f++],O=16*O+"0123456789abcdef".indexOf(E.toLowerCase())}return String.fromCharCode(O)}function se(){var u,m;for(m=String.fromCharCode(u=d.charCodeAt(f++)),u===92&&(d.charCodeAt(f)!==117&&V({},l.UnexpectedToken,"ILLEGAL"),++f,(u=ne("u"))&&u!=="\\\\"&&F(u.charCodeAt(0))||V({},l.UnexpectedToken,"ILLEGAL"),m=u);f<w&&W(u=d.charCodeAt(f));)++f,m+=String.fromCharCode(u),u===92&&(m=m.substr(0,m.length-1),d.charCodeAt(f)!==117&&V({},l.UnexpectedToken,"ILLEGAL"),++f,(u=ne("u"))&&u!=="\\\\"&&W(u.charCodeAt(0))||V({},l.UnexpectedToken,"ILLEGAL"),m+=u);return m}function J(){var u,m;for(u=f++;f<w;){if((m=d.charCodeAt(f))===92)return f=u,se();if(W(m))++f;else break}return d.slice(u,f)}function fe(){var u,m;return u=f,{type:(m=d.charCodeAt(f)===92?se():J()).length===1?a.Identifier:ge(m)?a.Keyword:m==="null"?a.NullLiteral:m==="true"||m==="false"?a.BooleanLiteral:a.Identifier,value:m,lineNumber:$,lineStart:S,start:u,end:f}}function ee(){var u,m,b,E,O=f,P=d.charCodeAt(f),G=d[f];switch(P){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:case 126:return++f,x.tokenize&&(P===40?x.openParenToken=x.tokens.length:P===123&&(x.openCurlyToken=x.tokens.length)),{type:a.Punctuator,value:String.fromCharCode(P),lineNumber:$,lineStart:S,start:O,end:f};default:if((u=d.charCodeAt(f+1))===61)switch(P){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return f+=2,{type:a.Punctuator,value:String.fromCharCode(P)+String.fromCharCode(u),lineNumber:$,lineStart:S,start:O,end:f};case 33:case 61:return f+=2,d.charCodeAt(f)===61&&++f,{type:a.Punctuator,value:d.slice(O,f),lineNumber:$,lineStart:S,start:O,end:f}}}return(E=d.substr(f,4))===">>>="?(f+=4,{type:a.Punctuator,value:E,lineNumber:$,lineStart:S,start:O,end:f}):(b=E.substr(0,3))===">>>"||b==="<<="||b===">>="?(f+=3,{type:a.Punctuator,value:b,lineNumber:$,lineStart:S,start:O,end:f}):G===(m=b.substr(0,2))[1]&&"+-<>&|".indexOf(G)>=0||m==="=>"?(f+=2,{type:a.Punctuator,value:m,lineNumber:$,lineStart:S,start:O,end:f}):"<>=!+-*%&|^/".indexOf(G)>=0?(++f,{type:a.Punctuator,value:G,lineNumber:$,lineStart:S,start:O,end:f}):void V({},l.UnexpectedToken,"ILLEGAL")}function _e(u){for(var m="";f<w&&R(d[f]);)m+=d[f++];return m.length===0&&V({},l.UnexpectedToken,"ILLEGAL"),F(d.charCodeAt(f))&&V({},l.UnexpectedToken,"ILLEGAL"),{type:a.NumericLiteral,value:parseInt("0x"+m,16),lineNumber:$,lineStart:S,start:u,end:f}}function lt(u){for(var m="0"+d[f++];f<w&&D(d[f]);)m+=d[f++];return(F(d.charCodeAt(f))||T(d.charCodeAt(f)))&&V({},l.UnexpectedToken,"ILLEGAL"),{type:a.NumericLiteral,value:parseInt(m,8),octal:!0,lineNumber:$,lineStart:S,start:u,end:f}}function Ye(){var u,m,b;if(j(T((b=d[f]).charCodeAt(0))||b===".","Numeric literal must start with a decimal digit or a decimal point"),m=f,u="",b!=="."){if(u=d[f++],b=d[f],u==="0"){if(b==="x"||b==="X")return++f,_e(m);if(D(b))return lt(m);b&&T(b.charCodeAt(0))&&V({},l.UnexpectedToken,"ILLEGAL")}for(;T(d.charCodeAt(f));)u+=d[f++];b=d[f]}if(b==="."){for(u+=d[f++];T(d.charCodeAt(f));)u+=d[f++];b=d[f]}if(b==="e"||b==="E")if(u+=d[f++],((b=d[f])==="+"||b==="-")&&(u+=d[f++]),T(d.charCodeAt(f)))for(;T(d.charCodeAt(f));)u+=d[f++];else V({},l.UnexpectedToken,"ILLEGAL");return F(d.charCodeAt(f))&&V({},l.UnexpectedToken,"ILLEGAL"),{type:a.NumericLiteral,value:parseFloat(u),lineNumber:$,lineStart:S,start:m,end:f}}function Br(){var u,m,b,E,O,P,G,ue,Z="",me=!1;for(G=$,ue=S,j((u=d[f])==="'"||u==='"',"String literal must starts with a quote"),m=f,++f;f<w;){if((b=d[f++])===u){u="";break}if(b==="\\\\")if((b=d[f++])&&B(b.charCodeAt(0)))++$,b==="\\r"&&d[f]===\`
|
|
105
|
+
\`&&++f,S=f;else switch(b){case"u":case"x":P=f,(O=ne(b))?Z+=O:(f=P,Z+=b);break;case"n":Z+=\`
|
|
106
|
+
\`;break;case"r":Z+="\\r";break;case"t":Z+=" ";break;case"b":Z+="\\b";break;case"f":Z+="\\f";break;case"v":Z+="\\v";break;default:D(b)?((E="01234567".indexOf(b))!==0&&(me=!0),f<w&&D(d[f])&&(me=!0,E=8*E+"01234567".indexOf(d[f++]),"0123".indexOf(b)>=0&&f<w&&D(d[f])&&(E=8*E+"01234567".indexOf(d[f++]))),Z+=String.fromCharCode(E)):Z+=b}else{if(B(b.charCodeAt(0)))break;Z+=b}}return u!==""&&V({},l.UnexpectedToken,"ILLEGAL"),{type:a.StringLiteral,value:Z,octal:me,startLineNumber:G,startLineStart:ue,lineNumber:$,lineStart:S,start:m,end:f}}function Xc(u,m){var b;try{b=new RegExp(u,m)}catch{V({},l.InvalidRegExp)}return b}function Zc(){var u,m,b,E;for(j((u=d[f])==="/","Regular expression literal must start with a slash"),m=d[f++],b=!1,E=!1;f<w;)if(m+=u=d[f++],u==="\\\\")B((u=d[f++]).charCodeAt(0))&&V({},l.UnterminatedRegExp),m+=u;else if(B(u.charCodeAt(0)))V({},l.UnterminatedRegExp);else if(b)u==="]"&&(b=!1);else{if(u==="/"){E=!0;break}u==="["&&(b=!0)}return E||V({},l.UnterminatedRegExp),{value:m.substr(1,m.length-2),literal:m}}function el(){var u,m,b,E;for(m="",b="";f<w&&W((u=d[f]).charCodeAt(0));)if(++f,u==="\\\\"&&f<w)if((u=d[f])==="u"){if(E=++f,u=ne("u"))for(b+=u,m+="\\\\u";E<f;++E)m+=d[E];else f=E,b+="u",m+="\\\\u";X({},l.UnexpectedToken,"ILLEGAL")}else m+="\\\\",X({},l.UnexpectedToken,"ILLEGAL");else b+=u,m+=u;return{value:b,literal:m}}function Na(){var u,m,b,E;return _=null,Y(),u=f,m=Zc(),b=el(),E=Xc(m.value,b.value),x.tokenize?{type:a.RegularExpression,value:E,lineNumber:$,lineStart:S,start:u,end:f}:{literal:m.literal+b.literal,value:E,start:u,end:f}}function ut(){var u,m,b,E;return Y(),u=f,m={start:{line:$,column:f-S}},b=Na(),m.end={line:$,column:f-S},x.tokenize||(x.tokens.length>0&&(E=x.tokens[x.tokens.length-1]).range[0]===u&&E.type==="Punctuator"&&(E.value==="/"||E.value==="/=")&&x.tokens.pop(),x.tokens.push({type:"RegularExpression",value:b.literal,range:[u,f],loc:m})),b}function tl(u){return u.type===a.Identifier||u.type===a.Keyword||u.type===a.BooleanLiteral||u.type===a.NullLiteral}function rl(){var u,m;if(!(u=x.tokens[x.tokens.length-1]))return ut();if(u.type==="Punctuator"){if(u.value==="]")return ee();if(u.value===")")return(m=x.tokens[x.openParenToken-1])&&m.type==="Keyword"&&(m.value==="if"||m.value==="while"||m.value==="for"||m.value==="with")?ut():ee();if(u.value==="}"){if(x.tokens[x.openCurlyToken-3]&&x.tokens[x.openCurlyToken-3].type==="Keyword"){if(!(m=x.tokens[x.openCurlyToken-4]))return ee()}else{if(!x.tokens[x.openCurlyToken-4]||x.tokens[x.openCurlyToken-4].type!=="Keyword")return ee();if(!(m=x.tokens[x.openCurlyToken-5]))return ut()}if(c.indexOf(m.value)>=0)return ee()}return ut()}return u.type==="Keyword"?ut():ee()}function Ur(){var u;return Y(),f>=w?{type:a.EOF,lineNumber:$,lineStart:S,start:f,end:f}:F(u=d.charCodeAt(f))?fe():u===40||u===41||u===59?ee():u===39||u===34?Br():u===46?T(d.charCodeAt(f+1))?Ye():ee():T(u)?Ye():x.tokenize&&u===47?rl():ee()}function Ma(){var u,m,b;return Y(),u={start:{line:$,column:f-S}},m=Ur(),u.end={line:$,column:f-S},m.type!==a.EOF&&(b=d.slice(m.start,m.end),x.tokens.push({type:i[m.type],value:b,range:[m.start,m.end],loc:u})),m}function z(){var u;return f=(u=_).end,$=u.lineNumber,S=u.lineStart,_=x.tokens!==void 0?Ma():Ur(),f=u.end,$=u.lineNumber,S=u.lineStart,u}function Wr(){var u,m,b;u=f,m=$,b=S,_=x.tokens!==void 0?Ma():Ur(),f=u,$=m,S=b}function Fa(u,m){this.line=u,this.column=m}function nl(u,m,b,E){this.start=new Fa(u,m),this.end=new Fa(b,E)}function Et(){var u,m,b,E;return u=f,m=$,b=S,Y(),E=$!==m,f=u,$=m,S=b,E}function V(u,m){var b,E=Array.prototype.slice.call(arguments,2),O=m.replace(/%(\\d)/g,function(P,G){return j(G<E.length,"Message reference must be in range"),E[G]});throw typeof u.lineNumber=="number"?((b=Error("Line "+u.lineNumber+": "+O)).index=u.start,b.lineNumber=u.lineNumber,b.column=u.start-S+1):((b=Error("Line "+$+": "+O)).index=f,b.lineNumber=$,b.column=f-S+1),b.description=O,b}function X(){try{V.apply(null,arguments)}catch(u){if(x.errors)x.errors.push(u);else throw u}}function je(u){if(u.type===a.EOF&&V(u,l.UnexpectedEOS),u.type===a.NumericLiteral&&V(u,l.UnexpectedNumber),u.type===a.StringLiteral&&V(u,l.UnexpectedString),u.type===a.Identifier&&V(u,l.UnexpectedIdentifier),u.type===a.Keyword){if(Q(u.value))V(u,l.UnexpectedReserved);else if(g&&ie(u.value)){X(u,l.StrictReservedWord);return}V(u,l.UnexpectedToken,u.value)}V(u,l.UnexpectedToken,u.value)}function M(u){var m=z();(m.type!==a.Punctuator||m.value!==u)&&je(m)}function oe(u){var m=z();(m.type!==a.Keyword||m.value!==u)&&je(m)}function N(u){return _.type===a.Punctuator&&_.value===u}function he(u){return _.type===a.Keyword&&_.value===u}function al(){var u;return _.type===a.Punctuator&&((u=_.value)==="="||u==="*="||u==="/="||u==="%="||u==="+="||u==="-="||u==="<<="||u===">>="||u===">>>="||u==="&="||u==="^="||u==="|=")}function Te(){var u;if(d.charCodeAt(f)===59||N(";")){z();return}u=$,Y(),$!==u||_.type===a.EOF||N("}")||je(_)}function Yt(u){return u.type===o.Identifier||u.type===o.MemberExpression}function il(){var u,m=[];for(u=_,M("[");!N("]");)N(",")?(z(),m.push(null)):(m.push(Se()),N("]")||M(","));return z(),y.markEnd(y.createArrayExpression(m),u)}function Gr(u,m){var b,E,O;return b=g,O=_,E=Vr(),m&&g&&te(u[0].name)&&X(m,l.StrictParamName),g=b,y.markEnd(y.createFunctionExpression(null,u,[],E),O)}function Xt(){var u,m;return m=_,(u=z()).type===a.StringLiteral||u.type===a.NumericLiteral?(g&&u.octal&&X(u,l.StrictOctalLiteral),y.markEnd(y.createLiteral(u),m)):y.markEnd(y.createIdentifier(u.value),m)}function sl(){var u,m,b,E,O,P;return u=_,P=_,u.type===a.Identifier?(b=Xt(),u.value!=="get"||N(":")?u.value!=="set"||N(":")?(M(":"),E=Se(),y.markEnd(y.createProperty("init",b,E),P)):(m=Xt(),M("("),(u=_).type!==a.Identifier?(M(")"),X(u,l.UnexpectedToken,u.value),E=Gr([])):(O=[Ue()],M(")"),E=Gr(O,u)),y.markEnd(y.createProperty("set",m,E),P)):(m=Xt(),M("("),M(")"),E=Gr([]),y.markEnd(y.createProperty("get",m,E),P))):u.type!==a.EOF&&u.type!==a.Punctuator?(m=Xt(),M(":"),E=Se(),y.markEnd(y.createProperty("init",m,E),P)):void je(u)}function ol(){var u,m,b,E,O,P=[],G={},ue=String;for(O=_,M("{");!N("}");)m=(u=sl()).key.type===o.Identifier?u.key.name:ue(u.key.value),E=u.kind==="init"?s.Data:u.kind==="get"?s.Get:s.Set,b="$"+m,Object.prototype.hasOwnProperty.call(G,b)?(G[b]===s.Data?g&&E===s.Data?X({},l.StrictDuplicateProperty):E!==s.Data&&X({},l.AccessorDataProperty):E===s.Data?X({},l.AccessorDataProperty):G[b]&E&&X({},l.AccessorGetSet),G[b]|=E):G[b]=E,P.push(u),N("}")||M(",");return M("}"),y.markEnd(y.createObjectExpression(P),O)}function cl(){var u;return M("("),u=pe(),M(")"),u}function La(){var u,m,b,E;if(N("("))return cl();if(N("["))return il();if(N("{"))return ol();if(u=_.type,E=_,u===a.Identifier)b=y.createIdentifier(z().value);else if(u===a.StringLiteral||u===a.NumericLiteral)g&&_.octal&&X(_,l.StrictOctalLiteral),b=y.createLiteral(z());else if(u===a.Keyword){if(he("function"))return Nl();he("this")?(z(),b=y.createThisExpression()):je(z())}else u===a.BooleanLiteral?((m=z()).value=m.value==="true",b=y.createLiteral(m)):u===a.NullLiteral?((m=z()).value=null,b=y.createLiteral(m)):N("/")||N("/=")?(b=x.tokens!==void 0?y.createLiteral(ut()):y.createLiteral(Na()),Wr()):je(z());return y.markEnd(b,E)}function Da(){var u=[];if(M("("),!N(")"))for(;f<w&&(u.push(Se()),!N(")"));)M(",");return M(")"),u}function ll(){var u,m;return m=_,tl(u=z())||je(u),y.markEnd(y.createIdentifier(u.value),m)}function qa(){return M("."),ll()}function Ba(){var u;return M("["),u=pe(),M("]"),u}function Ua(){var u,m,b;return b=_,oe("new"),u=pl(),m=N("(")?Da():[],y.markEnd(y.createNewExpression(u,m),b)}function ul(){var u,m,b,E,O;for(O=_,u=v.allowIn,v.allowIn=!0,m=he("new")?Ua():La(),v.allowIn=u;;){if(N("."))E=qa(),m=y.createMemberExpression(".",m,E);else if(N("("))b=Da(),m=y.createCallExpression(m,b);else if(N("["))E=Ba(),m=y.createMemberExpression("[",m,E);else break;y.markEnd(m,O)}return m}function pl(){var u,m,b,E;for(E=_,u=v.allowIn,m=he("new")?Ua():La(),v.allowIn=u;N(".")||N("[");)N("[")?(b=Ba(),m=y.createMemberExpression("[",m,b)):(b=qa(),m=y.createMemberExpression(".",m,b)),y.markEnd(m,E);return m}function Wa(){var u,m,b=_;return u=ul(),_.type===a.Punctuator&&(N("++")||N("--"))&&!Et()&&(g&&u.type===o.Identifier&&te(u.name)&&X({},l.StrictLHSPostfix),Yt(u)||X({},l.InvalidLHSInAssignment),m=z(),u=y.markEnd(y.createPostfixExpression(m.value,u),b)),u}function pt(){var u,m,b;return _.type!==a.Punctuator&&_.type!==a.Keyword?m=Wa():N("++")||N("--")?(b=_,u=z(),m=pt(),g&&m.type===o.Identifier&&te(m.name)&&X({},l.StrictLHSPrefix),Yt(m)||X({},l.InvalidLHSInAssignment),m=y.createUnaryExpression(u.value,m),m=y.markEnd(m,b)):N("+")||N("-")||N("~")||N("!")?(b=_,u=z(),m=pt(),m=y.createUnaryExpression(u.value,m),m=y.markEnd(m,b)):he("delete")||he("void")||he("typeof")?(b=_,u=z(),m=pt(),m=y.createUnaryExpression(u.value,m),m=y.markEnd(m,b),g&&m.operator==="delete"&&m.argument.type===o.Identifier&&X({},l.StrictDelete)):m=Wa(),m}function Ga(u,m){var b=0;if(u.type!==a.Punctuator&&u.type!==a.Keyword)return 0;switch(u.value){case"||":b=1;break;case"&&":b=2;break;case"|":b=3;break;case"^":b=4;break;case"&":b=5;break;case"==":case"!=":case"===":case"!==":b=6;break;case"<":case">":case"<=":case">=":case"instanceof":b=7;break;case"in":b=7*!!m;break;case"<<":case">>":case">>>":b=8;break;case"+":case"-":b=9;break;case"*":case"/":case"%":b=11}return b}function dl(){var u,m,b,E,O,P,G,ue,Z,me;if(u=_,Z=pt(),(O=Ga(E=_,v.allowIn))===0)return Z;for(E.prec=O,z(),m=[u,_],P=[Z,E,G=pt()];(O=Ga(_,v.allowIn))>0;){for(;P.length>2&&O<=P[P.length-2].prec;)G=P.pop(),ue=P.pop().value,Z=P.pop(),b=y.createBinaryExpression(ue,Z,G),m.pop(),u=m[m.length-1],y.markEnd(b,u),P.push(b);(E=z()).prec=O,P.push(E),m.push(_),b=pt(),P.push(b)}for(me=P.length-1,b=P[me],m.pop();me>1;)b=y.createBinaryExpression(P[me-1].value,P[me-2],b),me-=2,u=m.pop(),y.markEnd(b,u);return b}function fl(){var u,m,b,E,O;return O=_,u=dl(),N("?")&&(z(),m=v.allowIn,v.allowIn=!0,b=Se(),v.allowIn=m,M(":"),E=Se(),u=y.createConditionalExpression(u,b,E),y.markEnd(u,O)),u}function Se(){var u,m,b,E,O;return u=_,O=_,E=m=fl(),al()&&(Yt(m)||X({},l.InvalidLHSInAssignment),g&&m.type===o.Identifier&&te(m.name)&&X(u,l.StrictLHSAssignment),u=z(),b=Se(),E=y.markEnd(y.createAssignmentExpression(u.value,m,b),O)),E}function pe(){var u,m=_;if(u=Se(),N(",")){for(u=y.createSequenceExpression([u]);f<w&&N(",");)z(),u.expressions.push(Se());y.markEnd(u,m)}return u}function hl(){for(var u,m=[];f<w&&!N("}")&&(u=At())!==void 0;)m.push(u);return m}function Zt(){var u,m;return m=_,M("{"),u=hl(),M("}"),y.markEnd(y.createBlockStatement(u),m)}function Ue(){var u,m;return m=_,(u=z()).type!==a.Identifier&&je(u),y.markEnd(y.createIdentifier(u.value),m)}function ml(u){var m,b,E=null;return b=_,m=Ue(),g&&te(m.name)&&X({},l.StrictVarName),u==="const"?(M("="),E=Se()):N("=")&&(z(),E=Se()),y.markEnd(y.createVariableDeclarator(m,E),b)}function zr(u){var m=[];do{if(m.push(ml(u)),!N(","))break;z()}while(f<w);return m}function gl(){var u;return oe("var"),u=zr(),Te(),y.createVariableDeclaration(u,"var")}function yl(u){var m,b;return b=_,oe(u),m=zr(u),Te(),y.markEnd(y.createVariableDeclaration(m,u),b)}function _l(){return M(";"),y.createEmptyStatement()}function bl(){var u=pe();return Te(),y.createExpressionStatement(u)}function vl(){var u,m,b;return oe("if"),M("("),u=pe(),M(")"),m=Pe(),he("else")?(z(),b=Pe()):b=null,y.createIfStatement(u,m,b)}function $l(){var u,m,b;return oe("do"),b=v.inIteration,v.inIteration=!0,u=Pe(),v.inIteration=b,oe("while"),M("("),m=pe(),M(")"),N(";")&&z(),y.createDoWhileStatement(u,m)}function wl(){var u,m,b;return oe("while"),M("("),u=pe(),M(")"),b=v.inIteration,v.inIteration=!0,m=Pe(),v.inIteration=b,y.createWhileStatement(u,m)}function Sl(){var u,m,b;return b=_,u=z(),m=zr(),y.markEnd(y.createVariableDeclaration(m,u.value),b)}function xl(){var u,m,b,E,O,P,G;return u=m=b=null,oe("for"),M("("),N(";")?z():(he("var")||he("let")?(v.allowIn=!1,u=Sl(),v.allowIn=!0,u.declarations.length===1&&he("in")&&(z(),E=u,O=pe(),u=null)):(v.allowIn=!1,u=pe(),v.allowIn=!0,he("in")&&(Yt(u)||X({},l.InvalidLHSInForIn),z(),E=u,O=pe(),u=null)),E===void 0&&M(";")),E!==void 0||(N(";")||(m=pe()),M(";"),N(")")||(b=pe())),M(")"),G=v.inIteration,v.inIteration=!0,P=Pe(),v.inIteration=G,E===void 0?y.createForStatement(u,m,b,P):y.createForInStatement(E,O,P)}function El(){var u,m=null;return oe("continue"),d.charCodeAt(f)===59?(z(),v.inIteration||V({},l.IllegalContinue),y.createContinueStatement(null)):Et()?(v.inIteration||V({},l.IllegalContinue),y.createContinueStatement(null)):(_.type!==a.Identifier||(u="$"+(m=Ue()).name,Object.prototype.hasOwnProperty.call(v.labelSet,u)||V({},l.UnknownLabel,m.name)),Te(),m!==null||v.inIteration||V({},l.IllegalContinue),y.createContinueStatement(m))}function Al(){var u,m=null;return oe("break"),d.charCodeAt(f)===59?(z(),v.inIteration||v.inSwitch||V({},l.IllegalBreak),y.createBreakStatement(null)):Et()?(v.inIteration||v.inSwitch||V({},l.IllegalBreak),y.createBreakStatement(null)):(_.type!==a.Identifier||(u="$"+(m=Ue()).name,Object.prototype.hasOwnProperty.call(v.labelSet,u)||V({},l.UnknownLabel,m.name)),Te(),m!==null||v.inIteration||v.inSwitch||V({},l.IllegalBreak),y.createBreakStatement(m))}function kl(){var u=null;return oe("return"),v.inFunctionBody||X({},l.IllegalReturn),d.charCodeAt(f)===32&&F(d.charCodeAt(f+1))?(u=pe(),Te(),y.createReturnStatement(u)):Et()?y.createReturnStatement(null):(N(";")||N("}")||_.type===a.EOF||(u=pe()),Te(),y.createReturnStatement(u))}function Il(){var u,m;return g&&(Y(),X({},l.StrictModeWith)),oe("with"),M("("),u=pe(),M(")"),m=Pe(),y.createWithStatement(u,m)}function Ol(){var u,m,b,E=[];for(b=_,he("default")?(z(),u=null):(oe("case"),u=pe()),M(":");f<w&&!(N("}")||he("default")||he("case"));)m=Pe(),E.push(m);return y.markEnd(y.createSwitchCase(u,E),b)}function jl(){var u,m,b,E,O;if(oe("switch"),M("("),u=pe(),M(")"),M("{"),m=[],N("}"))return z(),y.createSwitchStatement(u,m);for(E=v.inSwitch,v.inSwitch=!0,O=!1;f<w&&!N("}");)(b=Ol()).test===null&&(O&&V({},l.MultipleDefaultsInSwitch),O=!0),m.push(b);return v.inSwitch=E,M("}"),y.createSwitchStatement(u,m)}function Tl(){var u;return oe("throw"),Et()&&V({},l.NewlineAfterThrow),u=pe(),Te(),y.createThrowStatement(u)}function Pl(){var u,m,b;return b=_,oe("catch"),M("("),N(")")&&je(_),u=Ue(),g&&te(u.name)&&X({},l.StrictCatchVariable),M(")"),m=Zt(),y.markEnd(y.createCatchClause(u,m),b)}function Cl(){var u,m=[],b=null;return oe("try"),u=Zt(),he("catch")&&m.push(Pl()),he("finally")&&(z(),b=Zt()),m.length!==0||b||V({},l.NoCatchOrFinally),y.createTryStatement(u,[],m,b)}function Rl(){return oe("debugger"),Te(),y.createDebuggerStatement()}function Pe(){var u,m,b,E,O=_.type;if(O===a.EOF&&je(_),O===a.Punctuator&&_.value==="{")return Zt();if(E=_,O===a.Punctuator)switch(_.value){case";":return y.markEnd(_l(),E);case"(":return y.markEnd(bl(),E)}if(O===a.Keyword)switch(_.value){case"break":return y.markEnd(Al(),E);case"continue":return y.markEnd(El(),E);case"debugger":return y.markEnd(Rl(),E);case"do":return y.markEnd($l(),E);case"for":return y.markEnd(xl(),E);case"function":return y.markEnd(Va(),E);case"if":return y.markEnd(vl(),E);case"return":return y.markEnd(kl(),E);case"switch":return y.markEnd(jl(),E);case"throw":return y.markEnd(Tl(),E);case"try":return y.markEnd(Cl(),E);case"var":return y.markEnd(gl(),E);case"while":return y.markEnd(wl(),E);case"with":return y.markEnd(Il(),E)}return(u=pe()).type===o.Identifier&&N(":")?(z(),b="$"+u.name,Object.prototype.hasOwnProperty.call(v.labelSet,b)&&V({},l.Redeclaration,"Label",u.name),v.labelSet[b]=!0,m=Pe(),delete v.labelSet[b],y.markEnd(y.createLabeledStatement(u,m),E)):(Te(),y.markEnd(y.createExpressionStatement(u),E))}function Vr(){var u,m,b,E,O,P,G,ue,Z=[];for(ue=_,M("{");f<w&&_.type===a.StringLiteral&&(m=_,u=At(),Z.push(u),u.expression.type===o.Literal);)d.slice(m.start+1,m.end-1)==="use strict"?(g=!0,b&&X(b,l.StrictOctalLiteral)):!b&&m.octal&&(b=m);for(E=v.labelSet,O=v.inIteration,P=v.inSwitch,G=v.inFunctionBody,v.labelSet={},v.inIteration=!1,v.inSwitch=!1,v.inFunctionBody=!0;f<w&&!N("}")&&(u=At())!==void 0;)Z.push(u);return M("}"),v.labelSet=E,v.inIteration=O,v.inSwitch=P,v.inFunctionBody=G,y.markEnd(y.createBlockStatement(Z),ue)}function za(u){var m,b,E,O,P,G,ue=[];if(M("("),!N(")"))for(O={};f<w&&(b=_,m=Ue(),P="$"+b.value,g?(te(b.value)&&(E=b,G=l.StrictParamName),Object.prototype.hasOwnProperty.call(O,P)&&(E=b,G=l.StrictParamDupe)):!u&&(te(b.value)?(u=b,G=l.StrictParamName):ie(b.value)?(u=b,G=l.StrictReservedWord):Object.prototype.hasOwnProperty.call(O,P)&&(u=b,G=l.StrictParamDupe)),ue.push(m),O[P]=!0,!N(")"));)M(",");return M(")"),{params:ue,stricted:E,firstRestricted:u,message:G}}function Va(){var u,m,b,E,O,P,G,ue,Z,me=[];return Z=_,oe("function"),b=_,u=Ue(),g?te(b.value)&&X(b,l.StrictFunctionName):te(b.value)?(P=b,G=l.StrictFunctionName):ie(b.value)&&(P=b,G=l.StrictReservedWord),me=(O=za(P)).params,E=O.stricted,P=O.firstRestricted,O.message&&(G=O.message),ue=g,m=Vr(),g&&P&&V(P,G),g&&E&&X(E,G),g=ue,y.markEnd(y.createFunctionDeclaration(u,me,[],m),Z)}function Nl(){var u,m,b,E,O,P,G,ue,Z=null,me=[];return ue=_,oe("function"),!N("(")&&(u=_,Z=Ue(),g?te(u.value)&&X(u,l.StrictFunctionName):te(u.value)?(b=u,E=l.StrictFunctionName):ie(u.value)&&(b=u,E=l.StrictReservedWord)),me=(O=za(b)).params,m=O.stricted,b=O.firstRestricted,O.message&&(E=O.message),G=g,P=Vr(),g&&b&&V(b,E),g&&m&&X(m,E),g=G,y.markEnd(y.createFunctionExpression(Z,me,[],P),ue)}function At(){if(_.type===a.Keyword)switch(_.value){case"const":case"let":return yl(_.value);case"function":return Va();default:return Pe()}if(_.type!==a.EOF)return Pe()}function Ml(){for(var u,m,b,E=[];f<w&&(m=_).type===a.StringLiteral&&(u=At(),E.push(u),u.expression.type===o.Literal);)d.slice(m.start+1,m.end-1)==="use strict"?(g=!0,b&&X(b,l.StrictOctalLiteral)):!b&&m.octal&&(b=m);for(;f<w&&(u=At())!==void 0;)E.push(u);return E}function Fl(){var u,m;return Y(),Wr(),m=_,g=!1,u=Ml(),y.markEnd(y.createProgram(u),m)}function Ha(){var u,m,b,E=[];for(u=0;u<x.tokens.length;++u)b={type:(m=x.tokens[u]).type,value:m.value},x.range&&(b.range=m.range),x.loc&&(b.loc=m.loc),E.push(b);x.tokens=E}function Ll(u,m){var b,E,O;b=String,typeof u=="string"||u instanceof String||(u=b(u)),y=h,f=0,$=+((d=u).length>0),S=0,w=d.length,_=null,v={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1,lastCommentStart:-1},x={},(m=m||{}).tokens=!0,x.tokens=[],x.tokenize=!0,x.openParenToken=-1,x.openCurlyToken=-1,x.range=typeof m.range=="boolean"&&m.range,x.loc=typeof m.loc=="boolean"&&m.loc,typeof m.comment=="boolean"&&m.comment&&(x.comments=[]),typeof m.tolerant=="boolean"&&m.tolerant&&(x.errors=[]);try{if(Wr(),_.type===a.EOF)return x.tokens;for(E=z();_.type!==a.EOF;)try{E=z()}catch(P){if(E=_,x.errors){x.errors.push(P);break}throw P}Ha(),O=x.tokens,x.comments!==void 0&&(O.comments=x.comments),x.errors!==void 0&&(O.errors=x.errors)}catch(P){throw P}finally{x={}}return O}function Dl(u,m){var b,E;E=String,typeof u=="string"||u instanceof String||(u=E(u)),y=h,f=0,$=+((d=u).length>0),S=0,w=d.length,_=null,v={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1,lastCommentStart:-1},x={},m!==void 0&&(x.range=typeof m.range=="boolean"&&m.range,x.loc=typeof m.loc=="boolean"&&m.loc,x.attachComment=typeof m.attachComment=="boolean"&&m.attachComment,x.loc&&m.source!==null&&m.source!==void 0&&(x.source=E(m.source)),typeof m.tokens=="boolean"&&m.tokens&&(x.tokens=[]),typeof m.comment=="boolean"&&m.comment&&(x.comments=[]),typeof m.tolerant=="boolean"&&m.tolerant&&(x.errors=[]),x.attachComment&&(x.range=!0,x.comments=[],x.bottomRightStack=[],x.trailingComments=[],x.leadingComments=[]));try{b=Fl(),x.comments!==void 0&&(b.comments=x.comments),x.tokens!==void 0&&(Ha(),b.tokens=x.tokens),x.errors!==void 0&&(b.errors=x.errors)}catch(O){throw O}finally{x={}}return b}(i={})[(a={BooleanLiteral:1,EOF:2,Identifier:3,Keyword:4,NullLiteral:5,NumericLiteral:6,Punctuator:7,StringLiteral:8,RegularExpression:9}).BooleanLiteral]="Boolean",i[a.EOF]="<end>",i[a.Identifier]="Identifier",i[a.Keyword]="Keyword",i[a.NullLiteral]="Null",i[a.NumericLiteral]="Numeric",i[a.Punctuator]="Punctuator",i[a.StringLiteral]="String",i[a.RegularExpression]="RegularExpression",c=["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="],o={AssignmentExpression:"AssignmentExpression",ArrayExpression:"ArrayExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",Program:"Program",Property:"Property",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement"},s={Data:1,Get:2,Set:4},l={UnexpectedToken:"Unexpected token %0",UnexpectedNumber:"Unexpected number",UnexpectedString:"Unexpected string",UnexpectedIdentifier:"Unexpected identifier",UnexpectedReserved:"Unexpected reserved word",UnexpectedEOS:"Unexpected end of input",NewlineAfterThrow:"Illegal newline after throw",InvalidRegExp:"Invalid regular expression",UnterminatedRegExp:"Invalid regular expression: missing /",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NoCatchOrFinally:"Missing catch or finally after try",UnknownLabel:"Undefined label '%0'",Redeclaration:"%0 '%1' has already been declared",IllegalContinue:"Illegal continue statement",IllegalBreak:"Illegal break statement",IllegalReturn:"Illegal return statement",StrictModeWith:"Strict mode code may not include a with statement",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictDuplicateProperty:"Duplicate data property in object literal not allowed in strict mode",AccessorDataProperty:"Object literal may not have data and accessor property with the same name",AccessorGetSet:"Object literal may not have multiple get/set accessors with the same name",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictReservedWord:"Use of future reserved word in strict mode"},p={NonAsciiIdentifierStart:RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԧԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠࢢ-ࢬऄ-हऽॐक़-ॡॱ-ॷॹ-ॿঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-ళవ-హఽౘౙౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൠൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤜᥐ-ᥭᥰ-ᥴᦀ-ᦫᧁ-ᧇᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚗꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꪀ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]"),NonAsciiIdentifierPart:RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮ̀-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁ҃-҇Ҋ-ԧԱ-Ֆՙա-և֑-ׇֽֿׁׂׅׄא-תװ-ײؐ-ؚؠ-٩ٮ-ۓە-ۜ۟-۪ۨ-ۼۿܐ-݊ݍ-ޱ߀-ߵߺࠀ-࠭ࡀ-࡛ࢠࢢ-ࢬࣤ-ࣾऀ-ॣ०-९ॱ-ॷॹ-ॿঁ-ঃঅ-ঌএঐও-নপ-রলশ-হ়-ৄেৈো-ৎৗড়ঢ়য়-ৣ০-ৱਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ੂੇੈੋ-੍ੑਖ਼-ੜਫ਼੦-ੵઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ઼-ૅે-ૉો-્ૐૠ-ૣ૦-૯ଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହ଼-ୄେୈୋ-୍ୖୗଡ଼ଢ଼ୟ-ୣ୦-୯ୱஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-்ௐௗ௦-௯ఁ-ఃఅ-ఌఎ-ఐఒ-నప-ళవ-హఽ-ౄె-ైొ-్ౕౖౘౙౠ-ౣ౦-౯ಂಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-್ೕೖೞೠ-ೣ೦-೯ೱೲംഃഅ-ഌഎ-ഐഒ-ഺഽ-ൄെ-ൈൊ-ൎൗൠ-ൣ൦-൯ൺ-ൿංඃඅ-ඖක-නඳ-රලව-ෆ්ා-ුූෘ-ෟෲෳก-ฺเ-๎๐-๙ກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆ່-ໍ໐-໙ໜ-ໟༀ༘༙༠-༩༹༵༷༾-ཇཉ-ཬཱ-྄྆-ྗྙ-ྼ࿆က-၉ၐ-ႝႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፝-፟ᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-᜔ᜠ-᜴ᝀ-ᝓᝠ-ᝬᝮ-ᝰᝲᝳក-៓ៗៜ៝០-៩᠋-᠍᠐-᠙ᠠ-ᡷᢀ-ᢪᢰ-ᣵᤀ-ᤜᤠ-ᤫᤰ-᤻᥆-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉ᧐-᧙ᨀ-ᨛᨠ-ᩞ᩠-᩿᩼-᪉᪐-᪙ᪧᬀ-ᭋ᭐-᭙᭫-᭳ᮀ-᯳ᰀ-᰷᱀-᱉ᱍ-ᱽ᳐-᳔᳒-ᳶᴀ-ᷦ᷼-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼ‿⁀⁔ⁱⁿₐ-ₜ⃐-⃥⃜⃡-⃰ℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯ⵿-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⷠ-ⷿⸯ々-〇〡-〯〱-〵〸-〼ぁ-ゖ゙゚ゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘫꙀ-꙯ꙴ-꙽ꙿ-ꚗꚟ-꛱ꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠧꡀ-ꡳꢀ-꣄꣐-꣙꣠-ꣷꣻ꤀-꤭ꤰ-꥓ꥠ-ꥼꦀ-꧀ꧏ-꧙ꨀ-ꨶꩀ-ꩍ꩐-꩙ꩠ-ꩶꩺꩻꪀ-ꫂꫛ-ꫝꫠ-ꫯꫲ-꫶ꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯪ꯬꯭꯰-꯹가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻ︀-️︠-︦︳︴﹍-﹏ﹰ-ﹴﹶ-ﻼ0-9A-Z_a-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]")},h={name:"SyntaxTree",processComment:function(u){var m,b;if(u.type!==o.Program||!(u.body.length>0)){for(x.trailingComments.length>0?x.trailingComments[0].range[0]>=u.range[1]?(b=x.trailingComments,x.trailingComments=[]):x.trailingComments.length=0:x.bottomRightStack.length>0&&x.bottomRightStack[x.bottomRightStack.length-1].trailingComments&&x.bottomRightStack[x.bottomRightStack.length-1].trailingComments[0].range[0]>=u.range[1]&&(b=x.bottomRightStack[x.bottomRightStack.length-1].trailingComments,delete x.bottomRightStack[x.bottomRightStack.length-1].trailingComments);x.bottomRightStack.length>0&&x.bottomRightStack[x.bottomRightStack.length-1].range[0]>=u.range[0];)m=x.bottomRightStack.pop();m?m.leadingComments&&m.leadingComments[m.leadingComments.length-1].range[1]<=u.range[0]&&(u.leadingComments=m.leadingComments,delete m.leadingComments):x.leadingComments.length>0&&x.leadingComments[x.leadingComments.length-1].range[1]<=u.range[0]&&(u.leadingComments=x.leadingComments,x.leadingComments=[]),b&&(u.trailingComments=b),x.bottomRightStack.push(u)}},markEnd:function(u,m){return x.range&&(u.range=[m.start,f]),x.loc&&(u.loc=new nl(m.startLineNumber===void 0?m.lineNumber:m.startLineNumber,m.start-(m.startLineStart===void 0?m.lineStart:m.startLineStart),$,f-S),this.postProcess(u)),x.attachComment&&this.processComment(u),u},postProcess:function(u){return x.source&&(u.loc.source=x.source),u},createArrayExpression:function(u){return{type:o.ArrayExpression,elements:u}},createAssignmentExpression:function(u,m,b){return{type:o.AssignmentExpression,operator:u,left:m,right:b}},createBinaryExpression:function(u,m,b){return{type:u==="||"||u==="&&"?o.LogicalExpression:o.BinaryExpression,operator:u,left:m,right:b}},createBlockStatement:function(u){return{type:o.BlockStatement,body:u}},createBreakStatement:function(u){return{type:o.BreakStatement,label:u}},createCallExpression:function(u,m){return{type:o.CallExpression,callee:u,arguments:m}},createCatchClause:function(u,m){return{type:o.CatchClause,param:u,body:m}},createConditionalExpression:function(u,m,b){return{type:o.ConditionalExpression,test:u,consequent:m,alternate:b}},createContinueStatement:function(u){return{type:o.ContinueStatement,label:u}},createDebuggerStatement:function(){return{type:o.DebuggerStatement}},createDoWhileStatement:function(u,m){return{type:o.DoWhileStatement,body:u,test:m}},createEmptyStatement:function(){return{type:o.EmptyStatement}},createExpressionStatement:function(u){return{type:o.ExpressionStatement,expression:u}},createForStatement:function(u,m,b,E){return{type:o.ForStatement,init:u,test:m,update:b,body:E}},createForInStatement:function(u,m,b){return{type:o.ForInStatement,left:u,right:m,body:b,each:!1}},createFunctionDeclaration:function(u,m,b,E){return{type:o.FunctionDeclaration,id:u,params:m,defaults:b,body:E,rest:null,generator:!1,expression:!1}},createFunctionExpression:function(u,m,b,E){return{type:o.FunctionExpression,id:u,params:m,defaults:b,body:E,rest:null,generator:!1,expression:!1}},createIdentifier:function(u){return{type:o.Identifier,name:u}},createIfStatement:function(u,m,b){return{type:o.IfStatement,test:u,consequent:m,alternate:b}},createLabeledStatement:function(u,m){return{type:o.LabeledStatement,label:u,body:m}},createLiteral:function(u){return{type:o.Literal,value:u.value,raw:d.slice(u.start,u.end)}},createMemberExpression:function(u,m,b){return{type:o.MemberExpression,computed:u==="[",object:m,property:b}},createNewExpression:function(u,m){return{type:o.NewExpression,callee:u,arguments:m}},createObjectExpression:function(u){return{type:o.ObjectExpression,properties:u}},createPostfixExpression:function(u,m){return{type:o.UpdateExpression,operator:u,argument:m,prefix:!1}},createProgram:function(u){return{type:o.Program,body:u}},createProperty:function(u,m,b){return{type:o.Property,key:m,value:b,kind:u}},createReturnStatement:function(u){return{type:o.ReturnStatement,argument:u}},createSequenceExpression:function(u){return{type:o.SequenceExpression,expressions:u}},createSwitchCase:function(u,m){return{type:o.SwitchCase,test:u,consequent:m}},createSwitchStatement:function(u,m){return{type:o.SwitchStatement,discriminant:u,cases:m}},createThisExpression:function(){return{type:o.ThisExpression}},createThrowStatement:function(u){return{type:o.ThrowStatement,argument:u}},createTryStatement:function(u,m,b,E){return{type:o.TryStatement,block:u,guardedHandlers:m,handlers:b,finalizer:E}},createUnaryExpression:function(u,m){return u==="++"||u==="--"?{type:o.UpdateExpression,operator:u,argument:m,prefix:!0}:{type:o.UnaryExpression,operator:u,argument:m,prefix:!0}},createVariableDeclaration:function(u,m){return{type:o.VariableDeclaration,declarations:u,kind:m}},createVariableDeclarator:function(u,m){return{type:o.VariableDeclarator,id:u,init:m}},createWhileStatement:function(u,m){return{type:o.WhileStatement,test:u,body:m}},createWithStatement:function(u,m){return{type:o.WithStatement,object:u,body:m}}},r.version="1.2.2",r.tokenize=Ll,r.parse=Dl,r.Syntax=function(){var u,m={};for(u in typeof Object.create=="function"&&(m=Object.create(null)),o)o.hasOwnProperty(u)&&(m[u]=o[u]);return typeof Object.freeze=="function"&&Object.freeze(m),m}()})},{}],1:[function(n,e,t){(function(r){var a=function(){var i={trace:function(){},yy:{},symbols_:{error:2,JSON_PATH:3,DOLLAR:4,PATH_COMPONENTS:5,LEADING_CHILD_MEMBER_EXPRESSION:6,PATH_COMPONENT:7,MEMBER_COMPONENT:8,SUBSCRIPT_COMPONENT:9,CHILD_MEMBER_COMPONENT:10,DESCENDANT_MEMBER_COMPONENT:11,DOT:12,MEMBER_EXPRESSION:13,DOT_DOT:14,STAR:15,IDENTIFIER:16,SCRIPT_EXPRESSION:17,INTEGER:18,END:19,CHILD_SUBSCRIPT_COMPONENT:20,DESCENDANT_SUBSCRIPT_COMPONENT:21,"[":22,SUBSCRIPT:23,"]":24,SUBSCRIPT_EXPRESSION:25,SUBSCRIPT_EXPRESSION_LIST:26,SUBSCRIPT_EXPRESSION_LISTABLE:27,",":28,STRING_LITERAL:29,ARRAY_SLICE:30,FILTER_EXPRESSION:31,QQ_STRING:32,Q_STRING:33,$accept:0,$end:1},terminals_:{2:"error",4:"DOLLAR",12:"DOT",14:"DOT_DOT",15:"STAR",16:"IDENTIFIER",17:"SCRIPT_EXPRESSION",18:"INTEGER",19:"END",22:"[",24:"]",28:",",30:"ARRAY_SLICE",31:"FILTER_EXPRESSION",32:"QQ_STRING",33:"Q_STRING"},productions_:[0,[3,1],[3,2],[3,1],[3,2],[5,1],[5,2],[7,1],[7,1],[8,1],[8,1],[10,2],[6,1],[11,2],[13,1],[13,1],[13,1],[13,1],[13,1],[9,1],[9,1],[20,3],[21,4],[23,1],[23,1],[26,1],[26,3],[27,1],[27,1],[27,1],[25,1],[25,1],[25,1],[29,1],[29,1]],performAction:function(s,l,p,h,d,g,f){h.ast||(h.ast=c,c.initialize());var $=g.length-1;switch(d){case 1:return h.ast.set({expression:{type:"root",value:g[$]}}),h.ast.unshift(),h.ast.yield();case 2:return h.ast.set({expression:{type:"root",value:g[$-1]}}),h.ast.unshift(),h.ast.yield();case 3:return h.ast.unshift(),h.ast.yield();case 4:return h.ast.set({operation:"member",scope:"child",expression:{type:"identifier",value:g[$-1]}}),h.ast.unshift(),h.ast.yield();case 5:case 6:case 11:case 13:case 18:case 21:case 22:case 23:break;case 7:h.ast.set({operation:"member"}),h.ast.push();break;case 8:h.ast.set({operation:"subscript"}),h.ast.push();break;case 9:case 19:h.ast.set({scope:"child"});break;case 10:case 20:h.ast.set({scope:"descendant"});break;case 12:h.ast.set({scope:"child",operation:"member"});break;case 14:h.ast.set({expression:{type:"wildcard",value:g[$]}});break;case 15:h.ast.set({expression:{type:"identifier",value:g[$]}});break;case 16:h.ast.set({expression:{type:"script_expression",value:g[$]}});break;case 17:h.ast.set({expression:{type:"numeric_literal",value:parseInt(g[$])}});break;case 24:g[$].length>1?h.ast.set({expression:{type:"union",value:g[$]}}):this.$=g[$];break;case 25:this.$=[g[$]];break;case 26:this.$=g[$-2].concat(g[$]);break;case 27:this.$={expression:{type:"numeric_literal",value:parseInt(g[$])}},h.ast.set(this.$);break;case 28:this.$={expression:{type:"string_literal",value:g[$]}},h.ast.set(this.$);break;case 29:this.$={expression:{type:"slice",value:g[$]}},h.ast.set(this.$);break;case 30:this.$={expression:{type:"wildcard",value:g[$]}},h.ast.set(this.$);break;case 31:this.$={expression:{type:"script_expression",value:g[$]}},h.ast.set(this.$);break;case 32:this.$={expression:{type:"filter_expression",value:g[$]}},h.ast.set(this.$);break;case 33:case 34:this.$=g[$]}},table:[{3:1,4:[1,2],6:3,13:4,15:[1,5],16:[1,6],17:[1,7],18:[1,8],19:[1,9]},{1:[3]},{1:[2,1],5:10,7:11,8:12,9:13,10:14,11:15,12:[1,18],14:[1,19],20:16,21:17,22:[1,20]},{1:[2,3],5:21,7:11,8:12,9:13,10:14,11:15,12:[1,18],14:[1,19],20:16,21:17,22:[1,20]},{1:[2,12],12:[2,12],14:[2,12],22:[2,12]},{1:[2,14],12:[2,14],14:[2,14],22:[2,14]},{1:[2,15],12:[2,15],14:[2,15],22:[2,15]},{1:[2,16],12:[2,16],14:[2,16],22:[2,16]},{1:[2,17],12:[2,17],14:[2,17],22:[2,17]},{1:[2,18],12:[2,18],14:[2,18],22:[2,18]},{1:[2,2],7:22,8:12,9:13,10:14,11:15,12:[1,18],14:[1,19],20:16,21:17,22:[1,20]},{1:[2,5],12:[2,5],14:[2,5],22:[2,5]},{1:[2,7],12:[2,7],14:[2,7],22:[2,7]},{1:[2,8],12:[2,8],14:[2,8],22:[2,8]},{1:[2,9],12:[2,9],14:[2,9],22:[2,9]},{1:[2,10],12:[2,10],14:[2,10],22:[2,10]},{1:[2,19],12:[2,19],14:[2,19],22:[2,19]},{1:[2,20],12:[2,20],14:[2,20],22:[2,20]},{13:23,15:[1,5],16:[1,6],17:[1,7],18:[1,8],19:[1,9]},{13:24,15:[1,5],16:[1,6],17:[1,7],18:[1,8],19:[1,9],22:[1,25]},{15:[1,29],17:[1,30],18:[1,33],23:26,25:27,26:28,27:32,29:34,30:[1,35],31:[1,31],32:[1,36],33:[1,37]},{1:[2,4],7:22,8:12,9:13,10:14,11:15,12:[1,18],14:[1,19],20:16,21:17,22:[1,20]},{1:[2,6],12:[2,6],14:[2,6],22:[2,6]},{1:[2,11],12:[2,11],14:[2,11],22:[2,11]},{1:[2,13],12:[2,13],14:[2,13],22:[2,13]},{15:[1,29],17:[1,30],18:[1,33],23:38,25:27,26:28,27:32,29:34,30:[1,35],31:[1,31],32:[1,36],33:[1,37]},{24:[1,39]},{24:[2,23]},{24:[2,24],28:[1,40]},{24:[2,30]},{24:[2,31]},{24:[2,32]},{24:[2,25],28:[2,25]},{24:[2,27],28:[2,27]},{24:[2,28],28:[2,28]},{24:[2,29],28:[2,29]},{24:[2,33],28:[2,33]},{24:[2,34],28:[2,34]},{24:[1,41]},{1:[2,21],12:[2,21],14:[2,21],22:[2,21]},{18:[1,33],27:42,29:34,30:[1,35],32:[1,36],33:[1,37]},{1:[2,22],12:[2,22],14:[2,22],22:[2,22]},{24:[2,26],28:[2,26]}],defaultActions:{27:[2,23],29:[2,30],30:[2,31],31:[2,32]},parseError:function(s,l){if(l.recoverable)this.trace(s);else throw Error(s)},parse:function(s){var l=this,p=[0],h=[null],d=[],g=this.table,f="",$=0,S=0,w=0,y=2,_=1,v=d.slice.call(arguments,1);this.lexer.setInput(s),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,this.yy.parser=this,this.lexer.yylloc===void 0&&(this.lexer.yylloc={});var x=this.lexer.yylloc;d.push(x);var j=this.lexer.options&&this.lexer.options.ranges;function T(){var k;return typeof(k=l.lexer.lex()||_)!="number"&&(k=l.symbols_[k]||k),k}typeof this.yy.parseError=="function"?this.parseError=this.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var R,D,H,B,F,W,Q,ie,te,ge={};;){if(H=p[p.length-1],this.defaultActions[H]?B=this.defaultActions[H]:(R==null&&(R=T()),B=g[H]&&g[H][R]),B===void 0||!B.length||!B[0]){var A="";for(W in te=[],g[H])this.terminals_[W]&&W>y&&te.push("'"+this.terminals_[W]+"'");A=this.lexer.showPosition?"Parse error on line "+($+1)+\`:
|
|
107
|
+
\`+this.lexer.showPosition()+\`
|
|
108
|
+
Expecting \`+te.join(", ")+", got '"+(this.terminals_[R]||R)+"'":"Parse error on line "+($+1)+": Unexpected "+(R==_?"end of input":"'"+(this.terminals_[R]||R)+"'"),this.parseError(A,{text:this.lexer.match,token:this.terminals_[R]||R,line:this.lexer.yylineno,loc:x,expected:te})}if(B[0]instanceof Array&&B.length>1)throw Error("Parse Error: multiple actions possible at state: "+H+", token: "+R);switch(B[0]){case 1:p.push(R),h.push(this.lexer.yytext),d.push(this.lexer.yylloc),p.push(B[1]),R=null,D?(R=D,D=null):(S=this.lexer.yyleng,f=this.lexer.yytext,$=this.lexer.yylineno,x=this.lexer.yylloc,w>0);break;case 2:if(Q=this.productions_[B[1]][1],ge.$=h[h.length-Q],ge._$={first_line:d[d.length-(Q||1)].first_line,last_line:d[d.length-1].last_line,first_column:d[d.length-(Q||1)].first_column,last_column:d[d.length-1].last_column},j&&(ge._$.range=[d[d.length-(Q||1)].range[0],d[d.length-1].range[1]]),(F=this.performAction.apply(ge,[f,S,$,this.yy,B[1],h,d].concat(v)))!==void 0)return F;Q&&(p=p.slice(0,-1*Q*2),h=h.slice(0,-1*Q),d=d.slice(0,-1*Q)),p.push(this.productions_[B[1]][0]),h.push(ge.$),d.push(ge._$),ie=g[p[p.length-2]][p[p.length-1]],p.push(ie);break;case 3:return!0}}return!0}},c={initialize:function(){this._nodes=[],this._node={},this._stash=[]},set:function(s){for(var l in s)this._node[l]=s[l];return this._node},node:function(s){return arguments.length&&(this._node=s),this._node},push:function(){this._nodes.push(this._node),this._node={}},unshift:function(){this._nodes.unshift(this._node),this._node={}},yield:function(){var s=this._nodes;return this.initialize(),s}};function o(){this.yy={}}return i.lexer=function(){return{EOF:1,parseError:function(s,l){if(this.yy.parser)this.yy.parser.parseError(s,l);else throw Error(s)},setInput:function(s){return this._input=s,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var s=this._input[0];return this.yytext+=s,this.yyleng++,this.offset++,this.match+=s,this.matched+=s,s.match(/(?:\\r\\n?|\\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),s},unput:function(s){var l=s.length,p=s.split(/(?:\\r\\n?|\\n)/g);this._input=s+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-l-1),this.offset-=l;var h=this.match.split(/(?:\\r\\n?|\\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),p.length-1&&(this.yylineno-=p.length-1);var d=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:p?(p.length===h.length?this.yylloc.first_column:0)+h[h.length-p.length].length-p[0].length:this.yylloc.first_column-l},this.options.ranges&&(this.yylloc.range=[d[0],d[0]+this.yyleng-l]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+\`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
|
|
109
|
+
\`+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(s){this.unput(this.match.slice(s))},pastInput:function(){var s=this.matched.substr(0,this.matched.length-this.match.length);return(s.length>20?"...":"")+s.substr(-20).replace(/\\n/g,"")},upcomingInput:function(){var s=this.match;return s.length<20&&(s+=this._input.substr(0,20-s.length)),(s.substr(0,20)+(s.length>20?"...":"")).replace(/\\n/g,"")},showPosition:function(){var s=this.pastInput(),l=Array(s.length+1).join("-");return s+this.upcomingInput()+\`
|
|
110
|
+
\`+l+"^"},test_match:function(s,l){var p,h,d;if(this.options.backtrack_lexer&&(d={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(d.yylloc.range=this.yylloc.range.slice(0))),(h=s[0].match(/(?:\\r\\n?|\\n).*/g))&&(this.yylineno+=h.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:h?h[h.length-1].length-h[h.length-1].match(/\\r?\\n?/)[0].length:this.yylloc.last_column+s[0].length},this.yytext+=s[0],this.match+=s[0],this.matches=s,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(s[0].length),this.matched+=s[0],p=this.performAction.call(this,this.yy,this,l,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),p)return p;if(this._backtrack)for(var g in d)this[g]=d[g];return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var s,l,p,h,d=this._currentRules(),g=0;g<d.length;g++)if((p=this._input.match(this.rules[d[g]]))&&(!l||p[0].length>l[0].length)){if(l=p,h=g,this.options.backtrack_lexer){if((s=this.test_match(p,d[g]))!==!1)return s;if(!this._backtrack)return!1;l=!1;continue}if(!this.options.flex)break}return l?(s=this.test_match(l,d[h]))!==!1&&s:this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+\`. Unrecognized text.
|
|
111
|
+
\`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var s=this.next();return s||this.lex()},begin:function(s){this.conditionStack.push(s)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(s){return(s=this.conditionStack.length-1-Math.abs(s||0))>=0?this.conditionStack[s]:"INITIAL"},pushState:function(s){this.begin(s)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(s,l,p,h){switch(p){case 0:return 4;case 1:return 14;case 2:return 12;case 3:return 15;case 4:return 16;case 5:return 22;case 6:return 24;case 7:return 28;case 8:return 30;case 9:return 18;case 10:return l.yytext=l.yytext.substr(1,l.yyleng-2),32;case 11:return l.yytext=l.yytext.substr(1,l.yyleng-2),33;case 12:return 17;case 13:return 31}},rules:[/^(?:\\$)/,/^(?:\\.\\.)/,/^(?:\\.)/,/^(?:\\*)/,/^(?:[a-zA-Z_]+[a-zA-Z0-9_]*)/,/^(?:\\[)/,/^(?:\\])/,/^(?:,)/,/^(?:((-?(?:0|[1-9][0-9]*)))?\\:((-?(?:0|[1-9][0-9]*)))?(\\:((-?(?:0|[1-9][0-9]*)))?)?)/,/^(?:(-?(?:0|[1-9][0-9]*)))/,/^(?:"(?:\\\\["bfnrt/\\\\]|\\\\u[a-fA-F0-9]{4}|[^"\\\\])*")/,/^(?:'(?:\\\\['bfnrt/\\\\]|\\\\u[a-fA-F0-9]{4}|[^'\\\\])*')/,/^(?:\\(.+?\\)(?=\\]))/,/^(?:\\?\\(.+?\\)(?=\\]))/],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],inclusive:!0}}}}(),o.prototype=i,i.Parser=o,new o}();n!==void 0&&t!==void 0&&(t.parser=a,t.Parser=a.Parser,t.parse=function(){return a.parse.apply(a,arguments)},t.main=function(i){i[1]||(console.log("Usage: "+i[0]+" FILE"),r.exit(1));var c=n("fs").readFileSync(n("path").normalize(i[1]),"utf8");return t.parser.parse(c)},e!==void 0&&n.main===e&&t.main(r.argv.slice(1)))}).call(this,n("_process"))},{_process:14,fs:12,path:13}],2:[function(n,e,t){e.exports={identifier:"[a-zA-Z_]+[a-zA-Z0-9_]*",integer:"-?(?:0|[1-9][0-9]*)",qq_string:'"(?:\\\\\\\\["bfnrt/\\\\\\\\]|\\\\\\\\u[a-fA-F0-9]{4}|[^"\\\\\\\\])*"',q_string:"'(?:\\\\\\\\['bfnrt/\\\\\\\\]|\\\\\\\\u[a-fA-F0-9]{4}|[^'\\\\\\\\])*'"}},{}],3:[function(n,e,t){var r=n("./dict"),a=n("fs"),i={lex:{macros:{esc:"\\\\\\\\",int:r.integer},rules:[["\\\\$","return 'DOLLAR'"],["\\\\.\\\\.","return 'DOT_DOT'"],["\\\\.","return 'DOT'"],["\\\\*","return 'STAR'"],[r.identifier,"return 'IDENTIFIER'"],["\\\\[","return '['"],["\\\\]","return ']'"],[",","return ','"],["({int})?\\\\:({int})?(\\\\:({int})?)?","return 'ARRAY_SLICE'"],["{int}","return 'INTEGER'"],[r.qq_string,"yytext = yytext.substr(1,yyleng-2); return 'QQ_STRING';"],[r.q_string,"yytext = yytext.substr(1,yyleng-2); return 'Q_STRING';"],["\\\\(.+?\\\\)(?=\\\\])","return 'SCRIPT_EXPRESSION'"],["\\\\?\\\\(.+?\\\\)(?=\\\\])","return 'FILTER_EXPRESSION'"]]},start:"JSON_PATH",bnf:{JSON_PATH:[["DOLLAR",'yy.ast.set({ expression: { type: "root", value: $1 } }); yy.ast.unshift(); return yy.ast.yield()'],["DOLLAR PATH_COMPONENTS",'yy.ast.set({ expression: { type: "root", value: $1 } }); yy.ast.unshift(); return yy.ast.yield()'],["LEADING_CHILD_MEMBER_EXPRESSION","yy.ast.unshift(); return yy.ast.yield()"],["LEADING_CHILD_MEMBER_EXPRESSION PATH_COMPONENTS",'yy.ast.set({ operation: "member", scope: "child", expression: { type: "identifier", value: $1 }}); yy.ast.unshift(); return yy.ast.yield()']],PATH_COMPONENTS:[["PATH_COMPONENT",""],["PATH_COMPONENTS PATH_COMPONENT",""]],PATH_COMPONENT:[["MEMBER_COMPONENT",'yy.ast.set({ operation: "member" }); yy.ast.push()'],["SUBSCRIPT_COMPONENT",'yy.ast.set({ operation: "subscript" }); yy.ast.push() ']],MEMBER_COMPONENT:[["CHILD_MEMBER_COMPONENT",'yy.ast.set({ scope: "child" })'],["DESCENDANT_MEMBER_COMPONENT",'yy.ast.set({ scope: "descendant" })']],CHILD_MEMBER_COMPONENT:[["DOT MEMBER_EXPRESSION",""]],LEADING_CHILD_MEMBER_EXPRESSION:[["MEMBER_EXPRESSION",'yy.ast.set({ scope: "child", operation: "member" })']],DESCENDANT_MEMBER_COMPONENT:[["DOT_DOT MEMBER_EXPRESSION",""]],MEMBER_EXPRESSION:[["STAR",'yy.ast.set({ expression: { type: "wildcard", value: $1 } })'],["IDENTIFIER",'yy.ast.set({ expression: { type: "identifier", value: $1 } })'],["SCRIPT_EXPRESSION",'yy.ast.set({ expression: { type: "script_expression", value: $1 } })'],["INTEGER",'yy.ast.set({ expression: { type: "numeric_literal", value: parseInt($1) } })'],["END",""]],SUBSCRIPT_COMPONENT:[["CHILD_SUBSCRIPT_COMPONENT",'yy.ast.set({ scope: "child" })'],["DESCENDANT_SUBSCRIPT_COMPONENT",'yy.ast.set({ scope: "descendant" })']],CHILD_SUBSCRIPT_COMPONENT:[["[ SUBSCRIPT ]",""]],DESCENDANT_SUBSCRIPT_COMPONENT:[["DOT_DOT [ SUBSCRIPT ]",""]],SUBSCRIPT:[["SUBSCRIPT_EXPRESSION",""],["SUBSCRIPT_EXPRESSION_LIST",'$1.length > 1? yy.ast.set({ expression: { type: "union", value: $1 } }) : $$ = $1']],SUBSCRIPT_EXPRESSION_LIST:[["SUBSCRIPT_EXPRESSION_LISTABLE","$$ = [$1]"],["SUBSCRIPT_EXPRESSION_LIST , SUBSCRIPT_EXPRESSION_LISTABLE","$$ = $1.concat($3)"]],SUBSCRIPT_EXPRESSION_LISTABLE:[["INTEGER",'$$ = { expression: { type: "numeric_literal", value: parseInt($1) } }; yy.ast.set($$)'],["STRING_LITERAL",'$$ = { expression: { type: "string_literal", value: $1 } }; yy.ast.set($$)'],["ARRAY_SLICE",'$$ = { expression: { type: "slice", value: $1 } }; yy.ast.set($$)']],SUBSCRIPT_EXPRESSION:[["STAR",'$$ = { expression: { type: "wildcard", value: $1 } }; yy.ast.set($$)'],["SCRIPT_EXPRESSION",'$$ = { expression: { type: "script_expression", value: $1 } }; yy.ast.set($$)'],["FILTER_EXPRESSION",'$$ = { expression: { type: "filter_expression", value: $1 } }; yy.ast.set($$)']],STRING_LITERAL:[["QQ_STRING","$$ = $1"],["Q_STRING","$$ = $1"]]}};a.readFileSync&&(i.moduleInclude=a.readFileSync(n.resolve("../include/module.js")),i.actionInclude=a.readFileSync(n.resolve("../include/action.js"))),e.exports=i},{"./dict":2,fs:12}],4:[function(n,e,t){var r=n("./aesprim"),a=n("./slice"),i=n("static-eval"),c=n("underscore").uniq,o=function(){return this.initialize.apply(this,arguments)};function s(w,y,_){var v=n("./index"),x=f(r.parse(y).body[0].expression,{"@":w.value}),j=_.replace(/\\{\\{\\s*value\\s*\\}\\}/g,x),T=v.nodes(w.value,j);return T.forEach(function(R){R.path=w.path.concat(R.path.slice(1))}),T}function l(w){return Array.isArray(w)}function p(w){return w&&!(w instanceof Array)&&w instanceof Object}function h(w){return function(y,_,v,x){var j=y.value,T=y.path,R=[],D=(function(H,B){l(H)?(H.forEach(function(F,W){!(R.length>=x)&&v(W,F,_)&&R.push({path:B.concat(W),value:F})}),H.forEach(function(F,W){!(R.length>=x)&&w&&D(F,B.concat(W))})):p(H)&&(this.keys(H).forEach(function(F){!(R.length>=x)&&v(F,H[F],_)&&R.push({path:B.concat(F),value:H[F]})}),this.keys(H).forEach(function(F){!(R.length>=x)&&w&&D(H[F],B.concat(F))}))}).bind(this);return D(j,T),R}}function d(w){return function(y,_,v){return this.descend(_,y.expression.value,w,v)}}function g(w){return function(y,_,v){return this.traverse(_,y.expression.value,w,v)}}function f(){try{return i.apply(this,arguments)}catch{}}function $(w){return c(w=w.filter(function(y){return y}),function(y){return y.path.map(function(_){return String(_).replace("-","--")}).join("-")})}function S(w){var y=String(w);return y.match(/^-?[0-9]+$/)?parseInt(y):null}o.prototype.initialize=function(){this.traverse=h(!0),this.descend=h()},o.prototype.keys=Object.keys,o.prototype.resolve=function(w){var y=[w.operation,w.scope,w.expression.type].join("-"),_=this._fns[y];if(!_)throw Error("couldn't resolve key: "+y);return _.bind(this)},o.prototype.register=function(w,y){if(!y instanceof Function)throw Error("handler must be a function");this._fns[w]=y},o.prototype._fns={"member-child-identifier":function(w,y){var _=w.expression.value,v=y.value;if(v instanceof Object&&_ in v)return[{value:v[_],path:y.path.concat(_)}]},"member-descendant-identifier":g(function(w,y,_){return w==_}),"subscript-child-numeric_literal":d(function(w,y,_){return w===_}),"member-child-numeric_literal":d(function(w,y,_){return String(w)===String(_)}),"subscript-descendant-numeric_literal":g(function(w,y,_){return w===_}),"member-child-wildcard":d(function(){return!0}),"member-descendant-wildcard":g(function(){return!0}),"subscript-descendant-wildcard":g(function(){return!0}),"subscript-child-wildcard":d(function(){return!0}),"subscript-child-slice":function(w,y){if(l(y.value)){var _=w.expression.value.split(":").map(S),v=y.value.map(function(x,j){return{value:x,path:y.path.concat(j)}});return a.apply(null,[v].concat(_))}},"subscript-child-union":function(w,y){var _=[];return w.expression.value.forEach(function(v){var x={operation:"subscript",scope:"child",expression:v.expression},j=this.resolve(x)(x,y);j&&(_=_.concat(j))},this),$(_)},"subscript-descendant-union":function(w,y,_){var v=n(".."),x=this,j=[];return v.nodes(y,"$..*").slice(1).forEach(function(T){j.length>=_||w.expression.value.forEach(function(R){var D={operation:"subscript",scope:"child",expression:R.expression},H=x.resolve(D)(D,T);j=j.concat(H)})}),$(j)},"subscript-child-filter_expression":function(w,y,_){var v=w.expression.value.slice(2,-1),x=r.parse(v).body[0].expression,j=function(T,R){return f(x,{"@":R})};return this.descend(y,null,j,_)},"subscript-descendant-filter_expression":function(w,y,_){var v=w.expression.value.slice(2,-1),x=r.parse(v).body[0].expression,j=function(T,R){return f(x,{"@":R})};return this.traverse(y,null,j,_)},"subscript-child-script_expression":function(w,y){return s(y,w.expression.value.slice(1,-1),"$[{{value}}]")},"member-child-script_expression":function(w,y){return s(y,w.expression.value.slice(1,-1),"$.{{value}}")},"member-descendant-script_expression":function(w,y){return s(y,w.expression.value.slice(1,-1),"$..value")}},o.prototype._fns["subscript-child-string_literal"]=o.prototype._fns["member-child-identifier"],o.prototype._fns["member-descendant-numeric_literal"]=o.prototype._fns["subscript-descendant-string_literal"]=o.prototype._fns["member-descendant-identifier"],e.exports=o},{"..":"jsonpath","./aesprim":"./aesprim","./index":5,"./slice":7,"static-eval":15,underscore:12}],5:[function(n,e,t){var r=n("assert"),a=n("./dict"),i=n("./parser"),c=n("./handlers"),o=function(){this.initialize.apply(this,arguments)};function s(p){return Object.prototype.toString.call(p)=="[object String]"}o.prototype.initialize=function(){this.parser=new i,this.handlers=new c},o.prototype.parse=function(p){return r.ok(s(p),"we need a path"),this.parser.parse(p)},o.prototype.parent=function(p,h){r.ok(p instanceof Object,"obj needs to be an object"),r.ok(h,"we need a path");var d=this.nodes(p,h)[0];return d.path.pop(),this.value(p,d.path)},o.prototype.apply=function(p,h,d){r.ok(p instanceof Object,"obj needs to be an object"),r.ok(h,"we need a path"),r.equal(typeof d,"function","fn needs to be function");var g=this.nodes(p,h).sort(function(f,$){return $.path.length-f.path.length});return g.forEach(function(f){var $=f.path.pop(),S=this.value(p,this.stringify(f.path)),w=f.value=d.call(p,S[$]);S[$]=w},this),g},o.prototype.value=function(p,h,d){if(r.ok(p instanceof Object,"obj needs to be an object"),r.ok(h,"we need a path"),arguments.length>=3){var g=this.nodes(p,h).shift();if(!g)return this._vivify(p,h,d);var f=g.path.slice(-1).shift();this.parent(p,this.stringify(g.path))[f]=d}return this.query(p,this.stringify(h),1).shift()},o.prototype._vivify=function(p,h,d){var g=this;r.ok(p instanceof Object,"obj needs to be an object"),r.ok(h,"we need a path");var f=this.parser.parse(h).map(function(S){return S.expression.value}),$=function(S,w){var y=S.pop(),_=g.value(p,S);_||($(S.concat(),typeof y=="string"?{}:[]),_=g.value(p,S)),_[y]=w};return $(f,d),this.query(p,h)[0]},o.prototype.query=function(p,h,d){return r.ok(p instanceof Object,"obj needs to be an object"),r.ok(s(h),"we need a path"),this.nodes(p,h,d).map(function(g){return g.value})},o.prototype.paths=function(p,h,d){return r.ok(p instanceof Object,"obj needs to be an object"),r.ok(h,"we need a path"),this.nodes(p,h,d).map(function(g){return g.path})},o.prototype.nodes=function(p,h,d){if(r.ok(p instanceof Object,"obj needs to be an object"),r.ok(h,"we need a path"),d===0)return[];var g=this.parser.parse(h),f=this.handlers,$=[{path:["$"],value:p}],S=[];return g.length&&g[0].expression.type=="root"&&g.shift(),g.length?(g.forEach(function(w,y){if(!(S.length>=d)){var _=f.resolve(w),v=[];$.forEach(function(x){if(!(S.length>=d)){var j=_(w,x,d);y==g.length-1?S=S.concat(j||[]):v=v.concat(j||[])}}),$=v}}),d?S.slice(0,d):S):$},o.prototype.stringify=function(p){r.ok(p,"we need a path");var h="$",d={"descendant-member":"..{{value}}","child-member":".{{value}}","descendant-subscript":"..[{{value}}]","child-subscript":"[{{value}}]"};return(p=this._normalize(p)).forEach(function(g){if(g.expression.type!="root"){var f,$=[g.scope,g.operation].join("-"),S=d[$];if(f=g.expression.type=="string_literal"?JSON.stringify(g.expression.value):g.expression.value,!S)throw Error("couldn't find template "+$);h+=S.replace(/{{value}}/,f)}}),h},o.prototype._normalize=function(p){if(r.ok(p,"we need a path"),typeof p=="string")return this.parser.parse(p);if(Array.isArray(p)&&typeof p[0]=="string"){var h=[{expression:{type:"root",value:"$"}}];return p.forEach(function(d,g){if(d!="$"||g!==0)if(typeof d=="string"&&d.match("^"+a.identifier+"$"))h.push({operation:"member",scope:"child",expression:{value:d,type:"identifier"}});else{var f=typeof d=="number"?"numeric_literal":"string_literal";h.push({operation:"subscript",scope:"child",expression:{value:d,type:f}})}}),h}if(Array.isArray(p)&&typeof p[0]=="object")return p;throw Error("couldn't understand path "+p)},o.Handlers=c,o.Parser=i;var l=new o;l.JSONPath=o,e.exports=l},{"./dict":2,"./handlers":4,"./parser":6,assert:8}],6:[function(n,e,t){var r=n("./grammar"),a=n("../generated/parser"),i=function(){var c=new a.Parser,o=c.parseError;return c.yy.parseError=function(){c.yy.ast&&c.yy.ast.initialize(),o.apply(c,arguments)},c};i.grammar=r,e.exports=i},{"../generated/parser":1,"./grammar":3}],7:[function(n,e,t){e.exports=function(a,i,c,o){if(typeof i=="string")throw Error("start cannot be a string");if(typeof c=="string")throw Error("end cannot be a string");if(typeof o=="string")throw Error("step cannot be a string");var s=a.length;if(o===0)throw Error("step cannot be zero");if(o=o?r(o):1,i=i<0?s+i:i,c=c<0?s+c:c,i=r(i===0?0:i||(o>0?0:s-1)),c=r(c===0?0:c||(o>0?s:-1)),i=o>0?Math.max(0,i):Math.min(s,i),c=o>0?Math.min(c,s):Math.max(-1,c),o>0&&c<=i||o<0&&i<=c)return[];for(var l=[],p=i;p!=c&&(!(o<0)||!(p<=c))&&(!(o>0)||!(p>=c));p+=o)l.push(a[p]);return l};function r(a){return String(a).match(/^[0-9]+$/)?parseInt(a):Number.isFinite(a)?parseInt(a,10):0}},{}],8:[function(n,e,t){var r=n("util/"),a=Array.prototype.slice,i=Object.prototype.hasOwnProperty,c=e.exports=h;function o(y,_){return r.isUndefined(_)?""+_:r.isNumber(_)&&!isFinite(_)||r.isFunction(_)||r.isRegExp(_)?_.toString():_}function s(y,_){return r.isString(y)?y.length<_?y:y.slice(0,_):y}function l(y){return s(JSON.stringify(y.actual,o),128)+" "+y.operator+" "+s(JSON.stringify(y.expected,o),128)}function p(y,_,v,x,j){throw new c.AssertionError({message:v,actual:y,expected:_,operator:x,stackStartFunction:j})}function h(y,_){y||p(y,!0,_,"==",c.ok)}function d(y,_){if(y===_)return!0;if(r.isBuffer(y)&&r.isBuffer(_)){if(y.length!=_.length)return!1;for(var v=0;v<y.length;v++)if(y[v]!==_[v])return!1;return!0}return r.isDate(y)&&r.isDate(_)?y.getTime()===_.getTime():r.isRegExp(y)&&r.isRegExp(_)?y.source===_.source&&y.global===_.global&&y.multiline===_.multiline&&y.lastIndex===_.lastIndex&&y.ignoreCase===_.ignoreCase:!r.isObject(y)&&!r.isObject(_)?y==_:f(y,_)}function g(y){return Object.prototype.toString.call(y)=="[object Arguments]"}function f(y,_){if(r.isNullOrUndefined(y)||r.isNullOrUndefined(_)||y.prototype!==_.prototype)return!1;if(r.isPrimitive(y)||r.isPrimitive(_))return y===_;var v=g(y),x=g(_);if(v&&!x||!v&&x)return!1;if(v)return d(y=a.call(y),_=a.call(_));var j,T,R=w(y),D=w(_);if(R.length!=D.length)return!1;for(R.sort(),D.sort(),T=R.length-1;T>=0;T--)if(R[T]!=D[T])return!1;for(T=R.length-1;T>=0;T--)if(!d(y[j=R[T]],_[j]))return!1;return!0}function $(y,_){return!!y&&!!_&&(Object.prototype.toString.call(_)=="[object RegExp]"?_.test(y):y instanceof _||_.call({},y)===!0)}function S(y,_,v,x){var j;r.isString(v)&&(x=v,v=null);try{_()}catch(T){j=T}if(x=(v&&v.name?" ("+v.name+").":".")+(x?" "+x:"."),y&&!j&&p(j,v,"Missing expected exception"+x),!y&&$(j,v)&&p(j,v,"Got unwanted exception"+x),y&&j&&v&&!$(j,v)||!y&&j)throw j}c.AssertionError=function(y){this.name="AssertionError",this.actual=y.actual,this.expected=y.expected,this.operator=y.operator,y.message?(this.message=y.message,this.generatedMessage=!1):(this.message=l(this),this.generatedMessage=!0);var _=y.stackStartFunction||p;if(Error.captureStackTrace)Error.captureStackTrace(this,_);else{var v=Error();if(v.stack){var x=v.stack,j=_.name,T=x.indexOf(\`
|
|
112
|
+
\`+j);if(T>=0){var R=x.indexOf(\`
|
|
113
|
+
\`,T+1);x=x.substring(R+1)}this.stack=x}}},r.inherits(c.AssertionError,Error),c.fail=p,c.ok=h,c.equal=function(y,_,v){y!=_&&p(y,_,v,"==",c.equal)},c.notEqual=function(y,_,v){y==_&&p(y,_,v,"!=",c.notEqual)},c.deepEqual=function(y,_,v){d(y,_)||p(y,_,v,"deepEqual",c.deepEqual)},c.notDeepEqual=function(y,_,v){d(y,_)&&p(y,_,v,"notDeepEqual",c.notDeepEqual)},c.strictEqual=function(y,_,v){y!==_&&p(y,_,v,"===",c.strictEqual)},c.notStrictEqual=function(y,_,v){y===_&&p(y,_,v,"!==",c.notStrictEqual)},c.throws=function(y,_,v){S.apply(this,[!0].concat(a.call(arguments)))},c.doesNotThrow=function(y,_){S.apply(this,[!1].concat(a.call(arguments)))},c.ifError=function(y){if(y)throw y};var w=Object.keys||function(y){var _=[];for(var v in y)i.call(y,v)&&_.push(v);return _}},{"util/":11}],9:[function(n,e,t){typeof Object.create=="function"?e.exports=function(r,a){r.super_=a,r.prototype=Object.create(a.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(r,a){r.super_=a;var i=function(){};i.prototype=a.prototype,r.prototype=new i,r.prototype.constructor=r}},{}],10:[function(n,e,t){e.exports=function(r){return r&&typeof r=="object"&&typeof r.copy=="function"&&typeof r.fill=="function"&&typeof r.readUInt8=="function"}},{}],11:[function(n,e,t){(function(r,a){var i,c=/%[sdj%]/g;t.format=function(A){if(!j(A)){for(var k=[],C=0;C<arguments.length;C++)k.push(s(arguments[C]));return k.join(" ")}for(var C=1,Y=arguments,ne=Y.length,se=String(A).replace(c,function(ee){if(ee==="%%")return"%";if(C>=ne)return ee;switch(ee){case"%s":return String(Y[C++]);case"%d":return Number(Y[C++]);case"%j":try{return JSON.stringify(Y[C++])}catch{return"[Circular]"}default:return ee}}),J=Y[C];C<ne;J=Y[++C])v(J)||!D(J)?se+=" "+J:se+=" "+s(J);return se},t.deprecate=function(A,k){if(T(a.process))return function(){return t.deprecate(A,k).apply(this,arguments)};if(r.noDeprecation===!0)return A;var C=!1;return function(){if(!C){if(r.throwDeprecation)throw Error(k);r.traceDeprecation?console.trace(k):console.error(k),C=!0}return A.apply(this,arguments)}};var o={};function s(A,k){var C={seen:[],stylize:p};return arguments.length>=3&&(C.depth=arguments[2]),arguments.length>=4&&(C.colors=arguments[3]),_(k)?C.showHidden=k:k&&t._extend(C,k),T(C.showHidden)&&(C.showHidden=!1),T(C.depth)&&(C.depth=2),T(C.colors)&&(C.colors=!1),T(C.customInspect)&&(C.customInspect=!0),C.colors&&(C.stylize=l),d(C,A,C.depth)}function l(A,k){var C=s.styles[k];return C?"\\x1B["+s.colors[C][0]+"m"+A+"\\x1B["+s.colors[C][1]+"m":A}function p(A,k){return A}function h(A){var k={};return A.forEach(function(C,Y){k[C]=!0}),k}function d(A,k,C){if(A.customInspect&&k&&F(k.inspect)&&k.inspect!==t.inspect&&!(k.constructor&&k.constructor.prototype===k)){var Y,ne=k.inspect(C,A);return j(ne)||(ne=d(A,ne,C)),ne}var se=g(A,k);if(se)return se;var J=Object.keys(k),fe=h(J);if(A.showHidden&&(J=Object.getOwnPropertyNames(k)),B(k)&&(J.indexOf("message")>=0||J.indexOf("description")>=0))return f(k);if(J.length===0){if(F(k)){var ee=k.name?": "+k.name:"";return A.stylize("[Function"+ee+"]","special")}if(R(k))return A.stylize(RegExp.prototype.toString.call(k),"regexp");if(H(k))return A.stylize(Date.prototype.toString.call(k),"date");if(B(k))return f(k)}var _e="",lt=!1,Ye=["{","}"];return y(k)&&(lt=!0,Ye=["[","]"]),F(k)&&(_e=" [Function"+(k.name?": "+k.name:"")+"]"),R(k)&&(_e=" "+RegExp.prototype.toString.call(k)),H(k)&&(_e=" "+Date.prototype.toUTCString.call(k)),B(k)&&(_e=" "+f(k)),J.length!==0||lt&&k.length!=0?C<0?R(k)?A.stylize(RegExp.prototype.toString.call(k),"regexp"):A.stylize("[Object]","special"):(A.seen.push(k),Y=lt?$(A,k,C,fe,J):J.map(function(Br){return S(A,k,C,fe,Br,lt)}),A.seen.pop(),w(Y,_e,Ye)):Ye[0]+_e+Ye[1]}function g(A,k){if(T(k))return A.stylize("undefined","undefined");if(j(k)){var C="'"+JSON.stringify(k).replace(/^"|"$/g,"").replace(/'/g,"\\\\'").replace(/\\\\"/g,'"')+"'";return A.stylize(C,"string")}return x(k)?A.stylize(""+k,"number"):_(k)?A.stylize(""+k,"boolean"):v(k)?A.stylize("null","null"):void 0}function f(A){return"["+Error.prototype.toString.call(A)+"]"}function $(A,k,C,Y,ne){for(var se=[],J=0,fe=k.length;J<fe;++J)ge(k,String(J))?se.push(S(A,k,C,Y,String(J),!0)):se.push("");return ne.forEach(function(ee){ee.match(/^\\d+$/)||se.push(S(A,k,C,Y,ee,!0))}),se}function S(A,k,C,Y,ne,se){var J,fe,ee;if((ee=Object.getOwnPropertyDescriptor(k,ne)||{value:k[ne]}).get?fe=ee.set?A.stylize("[Getter/Setter]","special"):A.stylize("[Getter]","special"):ee.set&&(fe=A.stylize("[Setter]","special")),ge(Y,ne)||(J="["+ne+"]"),!fe&&(0>A.seen.indexOf(ee.value)?(fe=v(C)?d(A,ee.value,null):d(A,ee.value,C-1)).indexOf(\`
|
|
114
|
+
\`)>-1&&(fe=se?fe.split(\`
|
|
115
|
+
\`).map(function(_e){return" "+_e}).join(\`
|
|
116
|
+
\`).substr(2):\`
|
|
117
|
+
\`+fe.split(\`
|
|
118
|
+
\`).map(function(_e){return" "+_e}).join(\`
|
|
119
|
+
\`)):fe=A.stylize("[Circular]","special")),T(J)){if(se&&ne.match(/^\\d+$/))return fe;(J=JSON.stringify(""+ne)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(J=J.substr(1,J.length-2),J=A.stylize(J,"name")):(J=J.replace(/'/g,"\\\\'").replace(/\\\\"/g,'"').replace(/(^"|"$)/g,"'"),J=A.stylize(J,"string"))}return J+": "+fe}function w(A,k,C){var Y=0;return A.reduce(function(ne,se){return Y++,se.indexOf(\`
|
|
120
|
+
\`)>=0&&Y++,ne+se.replace(/\\u001b\\[\\d\\d?m/g,"").length+1},0)>60?C[0]+(k===""?"":k+\`
|
|
121
|
+
\`)+" "+A.join(\`,
|
|
122
|
+
\`)+" "+C[1]:C[0]+k+" "+A.join(", ")+" "+C[1]}function y(A){return Array.isArray(A)}function _(A){return typeof A=="boolean"}function v(A){return A===null}function x(A){return typeof A=="number"}function j(A){return typeof A=="string"}function T(A){return A===void 0}function R(A){return D(A)&&W(A)==="[object RegExp]"}function D(A){return typeof A=="object"&&A!==null}function H(A){return D(A)&&W(A)==="[object Date]"}function B(A){return D(A)&&(W(A)==="[object Error]"||A instanceof Error)}function F(A){return typeof A=="function"}function W(A){return Object.prototype.toString.call(A)}function Q(A){return A<10?"0"+A.toString(10):A.toString(10)}t.debuglog=function(A){if(T(i)&&(i=r.env.NODE_DEBUG||""),!o[A=A.toUpperCase()])if(RegExp("\\\\b"+A+"\\\\b","i").test(i)){var k=r.pid;o[A]=function(){var C=t.format.apply(t,arguments);console.error("%s %d: %s",A,k,C)}}else o[A]=function(){};return o[A]},t.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=y,t.isBoolean=_,t.isNull=v,t.isNullOrUndefined=function(A){return A==null},t.isNumber=x,t.isString=j,t.isSymbol=function(A){return typeof A=="symbol"},t.isUndefined=T,t.isRegExp=R,t.isObject=D,t.isDate=H,t.isError=B,t.isFunction=F,t.isPrimitive=function(A){return A===null||typeof A=="boolean"||typeof A=="number"||typeof A=="string"||typeof A=="symbol"||A===void 0},t.isBuffer=n("./support/isBuffer");var ie=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function te(){var A=new Date,k=[Q(A.getHours()),Q(A.getMinutes()),Q(A.getSeconds())].join(":");return[A.getDate(),ie[A.getMonth()],k].join(" ")}function ge(A,k){return Object.prototype.hasOwnProperty.call(A,k)}t.log=function(){console.log("%s - %s",te(),t.format.apply(t,arguments))},t.inherits=n("inherits"),t._extend=function(A,k){if(!k||!D(k))return A;for(var C=Object.keys(k),Y=C.length;Y--;)A[C[Y]]=k[C[Y]];return A}}).call(this,n("_process"),re!==void 0?re:typeof self<"u"?self:typeof window<"u"?window:{})},{"./support/isBuffer":10,_process:14,inherits:9}],12:[function(n,e,t){},{}],13:[function(n,e,t){(function(r){function a(s,l){for(var p=0,h=s.length-1;h>=0;h--){var d=s[h];d==="."?s.splice(h,1):d===".."?(s.splice(h,1),p++):p&&(s.splice(h,1),p--)}if(l)for(;p--;p)s.unshift("..");return s}function i(s){typeof s!="string"&&(s+="");var l,p=0,h=-1,d=!0;for(l=s.length-1;l>=0;--l)if(s.charCodeAt(l)===47){if(!d){p=l+1;break}}else h===-1&&(d=!1,h=l+1);return h===-1?"":s.slice(p,h)}function c(s,l){if(s.filter)return s.filter(l);for(var p=[],h=0;h<s.length;h++)l(s[h],h,s)&&p.push(s[h]);return p}t.resolve=function(){for(var s="",l=!1,p=arguments.length-1;p>=-1&&!l;p--){var h=p>=0?arguments[p]:r.cwd();if(typeof h!="string")throw TypeError("Arguments to path.resolve must be strings");h&&(s=h+"/"+s,l=h.charAt(0)==="/")}return s=a(c(s.split("/"),function(d){return!!d}),!l).join("/"),(l?"/":"")+s||"."},t.normalize=function(s){var l=t.isAbsolute(s),p=o(s,-1)==="/";return(s=a(c(s.split("/"),function(h){return!!h}),!l).join("/"))||l||(s="."),s&&p&&(s+="/"),(l?"/":"")+s},t.isAbsolute=function(s){return s.charAt(0)==="/"},t.join=function(){var s=Array.prototype.slice.call(arguments,0);return t.normalize(c(s,function(l,p){if(typeof l!="string")throw TypeError("Arguments to path.join must be strings");return l}).join("/"))},t.relative=function(s,l){function p(w){for(var y=0;y<w.length&&w[y]==="";y++);for(var _=w.length-1;_>=0&&w[_]==="";_--);return y>_?[]:w.slice(y,_-y+1)}s=t.resolve(s).substr(1),l=t.resolve(l).substr(1);for(var h=p(s.split("/")),d=p(l.split("/")),g=Math.min(h.length,d.length),f=g,$=0;$<g;$++)if(h[$]!==d[$]){f=$;break}for(var S=[],$=f;$<h.length;$++)S.push("..");return(S=S.concat(d.slice(f))).join("/")},t.sep="/",t.delimiter=":",t.dirname=function(s){if(typeof s!="string"&&(s+=""),s.length===0)return".";for(var l=s.charCodeAt(0),p=l===47,h=-1,d=!0,g=s.length-1;g>=1;--g)if((l=s.charCodeAt(g))===47){if(!d){h=g;break}}else d=!1;return h===-1?p?"/":".":p&&h===1?"/":s.slice(0,h)},t.basename=function(s,l){var p=i(s);return l&&p.substr(-1*l.length)===l&&(p=p.substr(0,p.length-l.length)),p},t.extname=function(s){typeof s!="string"&&(s+="");for(var l=-1,p=0,h=-1,d=!0,g=0,f=s.length-1;f>=0;--f){var $=s.charCodeAt(f);if($===47){if(!d){p=f+1;break}continue}h===-1&&(d=!1,h=f+1),$===46?l===-1?l=f:g!==1&&(g=1):l!==-1&&(g=-1)}return l===-1||h===-1||g===0||g===1&&l===h-1&&l===p+1?"":s.slice(l,h)};var o="ab".substr(-1)==="b"?function(s,l,p){return s.substr(l,p)}:function(s,l,p){return l<0&&(l=s.length+l),s.substr(l,p)}}).call(this,n("_process"))},{_process:14}],14:[function(n,e,t){var r,a,i,c=e.exports={};function o(){throw Error("setTimeout has not been defined")}function s(){throw Error("clearTimeout has not been defined")}function l(y){if(r===setTimeout)return setTimeout(y,0);if((r===o||!r)&&setTimeout)return r=setTimeout,setTimeout(y,0);try{return r(y,0)}catch{try{return r.call(null,y,0)}catch{return r.call(this,y,0)}}}function p(y){if(a===clearTimeout)return clearTimeout(y);if((a===s||!a)&&clearTimeout)return a=clearTimeout,clearTimeout(y);try{return a(y)}catch{try{return a.call(null,y)}catch{return a.call(this,y)}}}(function(){try{r=typeof setTimeout=="function"?setTimeout:o}catch{r=o}try{a=typeof clearTimeout=="function"?clearTimeout:s}catch{a=s}})();var h=[],d=!1,g=-1;function f(){d&&i&&(d=!1,i.length?h=i.concat(h):g=-1,h.length&&$())}function $(){if(!d){var y=l(f);d=!0;for(var _=h.length;_;){for(i=h,h=[];++g<_;)i&&i[g].run();g=-1,_=h.length}i=null,d=!1,p(y)}}function S(y,_){this.fun=y,this.array=_}function w(){}c.nextTick=function(y){var _=Array(arguments.length-1);if(arguments.length>1)for(var v=1;v<arguments.length;v++)_[v-1]=arguments[v];h.push(new S(y,_)),h.length!==1||d||l($)},S.prototype.run=function(){this.fun.apply(null,this.array)},c.title="browser",c.browser=!0,c.env={},c.argv=[],c.version="",c.versions={},c.on=w,c.addListener=w,c.once=w,c.off=w,c.removeListener=w,c.removeAllListeners=w,c.emit=w,c.prependListener=w,c.prependOnceListener=w,c.listeners=function(y){return[]},c.binding=function(y){throw Error("process.binding is not supported")},c.cwd=function(){return"/"},c.chdir=function(y){throw Error("process.chdir is not supported")},c.umask=function(){return 0}},{}],15:[function(n,e,t){var r=n("escodegen").generate;e.exports=function(a,i){i||(i={});var c={},o=function s(l,p){if(l.type==="Literal")return l.value;if(l.type==="UnaryExpression"){var h=s(l.argument);return l.operator==="+"?+h:l.operator==="-"?-h:l.operator==="~"?~h:l.operator==="!"?!h:c}if(l.type==="ArrayExpression"){for(var d=[],g=0,f=l.elements.length;g<f;g++){var $=s(l.elements[g]);if($===c)return c;d.push($)}return d}if(l.type==="ObjectExpression"){for(var S={},g=0;g<l.properties.length;g++){var w=l.properties[g],y=w.value===null?w.value:s(w.value);if(y===c)return c;S[w.key.value||w.key.name]=y}return S}if(l.type==="BinaryExpression"||l.type==="LogicalExpression"){var f=s(l.left);if(f===c)return c;var _=s(l.right);if(_===c)return c;var v=l.operator;return v==="=="?f==_:v==="==="?f===_:v==="!="?f!=_:v==="!=="?f!==_:v==="+"?f+_:v==="-"?f-_:v==="*"?f*_:v==="/"?f/_:v==="%"?f%_:v==="<"?f<_:v==="<="?f<=_:v===">"?f>_:v===">="?f>=_:v==="|"?f|_:v==="&"?f&_:v==="^"?f^_:v==="&&"?f&&_:v==="||"?f||_:c}else{if(l.type==="Identifier")return{}.hasOwnProperty.call(i,l.name)?i[l.name]:c;if(l.type==="ThisExpression")return{}.hasOwnProperty.call(i,"this")?i.this:c;if(l.type==="CallExpression"){var x=s(l.callee);if(x===c||typeof x!="function")return c;var j=l.callee.object?s(l.callee.object):c;j===c&&(j=null);for(var T=[],g=0,f=l.arguments.length;g<f;g++){var $=s(l.arguments[g]);if($===c)return c;T.push($)}return x.apply(j,T)}else if(l.type==="MemberExpression"){var S=s(l.object);if(S===c||typeof S=="function")return c;if(l.property.type==="Identifier")return S[l.property.name];var w=s(l.property);return w===c?c:S[w]}else if(l.type==="ConditionalExpression"){var h=s(l.test);return h===c?c:s(h?l.consequent:l.alternate)}else if(l.type==="ExpressionStatement"){var h=s(l.expression);return h===c?c:h}else{if(l.type==="ReturnStatement")return s(l.argument);if(l.type==="FunctionExpression"){var R=l.body.body,D={};Object.keys(i).forEach(function(A){D[A]=i[A]});for(var g=0;g<l.params.length;g++){var H=l.params[g];if(H.type!="Identifier")return c;i[H.name]=null}for(var g in R)if(s(R[g])===c)return c;var B=Object.keys(i=D),F=B.map(function(A){return i[A]});return Function(B.join(", "),"return "+r(l)).apply(null,F)}else if(l.type==="TemplateLiteral"){for(var W="",g=0;g<l.expressions.length;g++)W+=s(l.quasis[g]),W+=s(l.expressions[g]);return W+s(l.quasis[g])}else if(l.type==="TaggedTemplateExpression"){var Q=s(l.tag),ie=l.quasi,te=ie.quasis.map(s),ge=ie.expressions.map(s);return Q.apply(null,[te].concat(ge))}else return l.type==="TemplateElement"?l.value.cooked:c}}}(a);return o===c?void 0:o}},{escodegen:12}],jsonpath:[function(n,e,t){e.exports=n("./lib/index")},{"./lib/index":5}]},{},["jsonpath"])("jsonpath")});class Zo{constructor(e){this._itemsMap={},e.forEach((t,r)=>{this._itemsMap[t.item_id]=r})}pullItemIndex(e){let t=this._itemsMap[e];return delete this._itemsMap[e],t}getItemIndex(e){return this._itemsMap[e]}get itemsMap(){return this._itemsMap}}function ec(n,e){let t,r=[];n?t=n.split(","):r=e;let a=new Set;function i(c){let o=!a.has(c);return o&&a.add(c),o}return n&&e.forEach(c=>{let o="";t.forEach((s,l)=>{let p=c.fields.find(h=>h.field_id==s);p&&(o+=p.field_value),t.length-1==l&&i(o)&&r.push(c)})}),r}function tc(n,e,t){var r=JSON.parse(JSON.stringify(n));return t?rc(r,e):nc(r,e)}function rc(n,e){return n.forEach(t=>{e.forEach(r=>{let a=t.fields.find(i=>i.element_id==r.element_id);a?a.field_value=r.field_value:(r.field_id=r.element_id,t.fields.push(r))})}),n}function nc(n,e){return n.forEach(t=>{t.fields=[].concat(e)}),n}var K={},wt=I("f3Ywx"),ot=wt.default;Object.defineProperty(K,"__esModule",{value:!0}),K.default=lc;var ac=ot(I("5ZWAZ")),ic=ot(I("fgq5y")),sc=ot(I("byyO9")),oc=ot(I("glRwo")),cc=ot(I("ayR3G")),Qe=ot(I("a9VQw"));function lc(n,e){if((0,cc.default)(2,arguments),!e||(0,ac.default)(e)!=="object")return new Date(NaN);var t=e.years?(0,Qe.default)(e.years):0,r=e.months?(0,Qe.default)(e.months):0,a=e.weeks?(0,Qe.default)(e.weeks):0,i=e.days?(0,Qe.default)(e.days):0,c=e.hours?(0,Qe.default)(e.hours):0,o=e.minutes?(0,Qe.default)(e.minutes):0,s=e.seconds?(0,Qe.default)(e.seconds):0,l=(0,oc.default)(n),p=r||t?(0,sc.default)(l,r+12*t):l,h=i||a?(0,ic.default)(p,i+7*a):p,d=1e3*(s+60*(o+60*c));return new Date(h.getTime()+d)}K=K.default;var we={},wt=I("f3Ywx"),Ht=wt.default;Object.defineProperty(we,"__esModule",{value:!0}),we.default=hc;var uc=Ht(I("fgq5y")),pc=Ht(I("glRwo")),Ia=Ht(I("a9VQw")),dc=Ht(I("ayR3G")),fc=I("lmyOi");function hc(n,e,t){(0,dc.default)(2,arguments);var r,a,i,c,o,s,l,p,h=(0,fc.getDefaultOptions)(),d=(0,Ia.default)((r=(a=(i=(c=t==null?void 0:t.weekStartsOn)!==null&&c!==void 0?c:t==null||(o=t.locale)===null||o===void 0||(s=o.options)===null||s===void 0?void 0:s.weekStartsOn)!==null&&i!==void 0?i:h.weekStartsOn)!==null&&a!==void 0?a:(l=h.locale)===null||l===void 0||(p=l.options)===null||p===void 0?void 0:p.weekStartsOn)!==null&&r!==void 0?r:0);if(!(d>=0&&d<=6))throw RangeError("weekStartsOn must be between 0 and 6 inclusively");var g=(0,pc.default)(n),f=(0,Ia.default)(e),$=g.getDay(),S=(f%7+7)%7,w=7-d,y=f<0||f>6?f-($+w)%7:(S+w)%7-($+w)%7;return(0,uc.default)(g,y)}we=we.default;var $t={},wt=I("f3Ywx"),Oa=wt.default;Object.defineProperty($t,"__esModule",{value:!0}),$t.default=gc;var ja=Oa(I("hLz6R")),mc=Oa(I("ayR3G"));function gc(n,e,t){(0,mc.default)(2,arguments);var r=(0,ja.default)(n,t),a=(0,ja.default)(e,t);return r.getTime()===a.getTime()}function yc(n,e){return n.forEach(t=>{e.forEach(r=>{let a=t.fields.find(i=>i.element_id==r.element_id);a?r.data_range?(r.date_type.includes("calendar"),a.field_value=\`\${_c(r.date_type)}:\${Jt(r.date_type)}\`):a.field_value=Jt(r.date_type):t.fields.push({field_id:r.element_id,element_id:r.element_id,field_value:Jt(r.date_type)})})}),n}function _c(n){let e=new Date;function t(a){let i;var c=a.getDay();n.includes("week_current,current")&&(i=0),n.includes("week_next,future")&&(i=7),n.includes("week_past,past")&&(i=-7);let o=a.getDate()-c+i+(c==0?-6:1);return new Date(a.setDate(o))}function r(a){let i,c,o=Math.floor(a.getMonth()/3),s=a.getFullYear();return n.includes("quarter_current,current")&&(i=0,c=0),n.includes("quarter_next,future")&&(i=3,c=0),n.includes("quarter_past,past")&&(i=-3,c=0),new Date(s,3*o+i,1+c)}switch(n){case"week_current,current":case"week_next,future":case"week_past,past":return t(new Date).getTime();case"month_current,current":return new Date(e.getFullYear(),e.getMonth(),1).getTime();case"quarter_current,current":case"quarter_next,future":case"quarter_past,past":return r(new Date).getTime();case"year_current,current":return L(K)(new Date(e.getFullYear(),0,1),{years:0}).getTime();case"month_next,future":return new Date(e.getFullYear(),e.getMonth()+1,1).getTime();case"year_next,future":case"today_current,current":case"7_days_future,future":case"10_days_future,future":case"14_days_future,future":case"30_days_future,future":return L(K)(e,{days:0}).getTime();case"month_past,past":return new Date(e.getFullYear(),e.getMonth()-1,1).getTime();case"year_past,past":return L(K)(e,{years:-1}).getTime();case"year_past,past,calendar":return L(K)(new Date(e.getFullYear(),0,1),{years:-1}).getTime();case"year_future,future,calendar":return L(K)(new Date(e.getFullYear()+1,0,1),{years:0}).getTime();case"tomorrow,future":return L(K)(e,{days:1}).getTime();case"yesterday,past":return L(K)(e,{days:-1}).getTime();case"7_days_past,past":return L(K)(e,{days:-7}).getTime();case"10_days_past,past":return L(K)(e,{days:-10}).getTime();case"14_days_past,past":return L(K)(e,{days:-14}).getTime();case"30_days_past,past":return L(K)(e,{days:-30}).getTime()}}function Jt(n){var e=new Date;function t(o){var s=(o=new Date(o)).getDay(),l=o.getDate()-s+6+(s==0?6:1);return new Date(o.setDate(l))}function r(o){var s=(o=new Date(o)).getDay(),l=o.getDate()-s+13+(s==0?-6:1);return new Date(o.setDate(l))}function a(o){var s=(o=new Date(o)).getDay(),l=o.getDate()-s-1+(s==0?-6:1);return new Date(o.setDate(l))}let i=Math.floor(e.getMonth()/3),c=e.getFullYear();switch(n){case"next_day":case"tomorrow,future":return L(K)(e,{days:1}).getTime();case"two_days_after":return L(K)(e,{days:2}).getTime();case"three_days_after":return L(K)(e,{days:3}).getTime();case"four_days_after":return L(K)(e,{days:4}).getTime();case"next_week":return L(K)(e,{weeks:1}).getTime();case"two_weeks_after":return L(K)(e,{weeks:2}).getTime();case"three_weeks_after":return L(K)(e,{weeks:3}).getTime();case"this_sunday":return L(we)(e,0,{weekStartsOn:1});case"this_monday":return L(we)(e,1,{weekStartsOn:1});case"this_tuesday":return L(we)(e,2,{weekStartsOn:1});case"this_wednesday":return L(we)(e,3,{weekStartsOn:1});case"this_thursday":return L(we)(e,4,{weekStartsOn:1});case"this_friday":return L(we)(e,5,{weekStartsOn:1});case"this_saturday":return L(we)(e,6,{weekStartsOn:1});case"today_current,current":case"7_days_past,past":case"10_days_past,past":case"14_days_past,past":case"30_days_past,past":case"year_past,past":return L(K)(e,{days:0}).getTime();case"7_days_future,future":return L(K)(e,{days:7}).getTime();case"10_days_future,future":return L(K)(e,{days:10}).getTime();case"14_days_future,future":return L(K)(e,{days:14}).getTime();case"30_days_future,future":return L(K)(e,{days:30}).getTime();case"yesterday,past":return L(K)(e,{days:-1}).getTime();case"year_future,future,calendar":return L(K)(new Date(e.getFullYear()+1,0,0),{years:1}).getTime();case"year_past,past,calendar":return L(K)(new Date(e.getFullYear(),0,0),{years:0}).getTime();case"week_current,current":return t(new Date).getTime();case"month_current,current":return new Date(e.getFullYear(),e.getMonth()+1,0).getTime();case"quarter_current,current":return new Date(c,(i+1)*3,0).getTime();case"year_current,current":return L(K)(new Date(e.getFullYear()+1,0,0),{years:0}).getTime();case"week_next,future":return r(new Date).getTime();case"month_next,future":return new Date(e.getFullYear(),e.getMonth()+2,0).getTime();case"quarter_next,future":return new Date(c,(i+1)*3+3,0).getTime();case"year_next,future":return L(K)(e,{years:1}).getTime();case"week_past,past":return a(new Date).getTime();case"month_past,past":return new Date(e.getFullYear(),e.getMonth(),0,0).getTime();case"quarter_past,past":return new Date(c,(i+1)*3-3,0).getTime();default:return e.getTime()}}function bc(n,e){n=new Date(n);let t=new Date;switch(e){case"day":return n.getDate()+"."+n.getMonth()==t.getDate()+"."+t.getMonth();case"week":let r=new Date(new Date().getFullYear(),n.getMonth(),n.getDate());return L($t)(r,t);case"month":return n.getMonth()===t.getMonth();default:return!0}}function vc(n,e,t){return ct(n,e,t)}function Kt(n){return n&&typeof n=="object"&&Object.prototype.toString.call(n)!=="[object RegExp]"&&Object.prototype.toString.call(n)!=="[object Date]"}function $c(n){return Array.isArray(n)?[]:{}}function St(n,e){return e&&e.clone===!0&&Kt(n)?ct($c(n),n,e):n}function Ta(n,e,t){var r=n.slice();return e.forEach(function(a,i){r[i]===void 0?r[i]=St(a,t):Kt(a)?r[i]=ct(n[i],a,t):n.indexOf(a)===-1&&r.push(St(a,t))}),r}function wc(n,e,t){var r={};return Kt(n)&&Object.keys(n).forEach(function(a){r[a]=St(n[a],t)}),Object.keys(e).forEach(function(a){Kt(e[a])&&n[a]?r[a]=ct(n[a],e[a],t):r[a]=St(e[a],t)}),r}function ct(n,e,t){n=n!==void 0?n:{};var r=Array.isArray(e=e!==void 0?e:{}),a=(t||{arrayMerge:Ta}).arrayMerge||Ta;return r?Array.isArray(n)?a(n,e,t):St(e,t):wc(n,e,t)}function Pa(n){let e={};return n.forEach(t=>{t.items_list.forEach(r=>{let a=e[r.item_id];return a?(a.trash=r.trash,r.fields.forEach(i=>{let c=!0;a.fields=a.fields.map(o=>Number(o.field_id)===Number(i.field_id)&&(c=!1,o.field_value!=i.field_value)?{...i,history:i.history.concat(o.history)}:o),c&&a.fields.push(i)})):e[r.item_id]=r})}),Object.values(e)}function Sc(n){return Pa(n)}function xc(n,e,t,r="children",a=null){let i={},c=[];n.forEach(l=>{i[l[e]]={...l,[r]:[]}}),n.forEach(l=>{let p=l[t];p&&i[p]?i[p][r].push(i[l[e]]):c.push(i[l[e]])});let o=l=>{l.forEach(p=>{p[r].length>0&&o(p[r])}),a&&l.sort((p,h)=>(p[a]??1/0)-(h[a]??1/0))};o(c);let s=l=>{l.forEach(p=>{p[r].length===0?delete p[r]:s(p[r])})};return s(c),c}$t=$t.default,ct.all=function(n,e){if(!Array.isArray(n)||n.length<2)throw Error("first argument should be an array with at least two elements");return n.reduce(function(t,r){return ct(t,r,e)})},globalThis.onmessage=function(n){let e=Pa(n.data);self.postMessage(e)};class Ec{constructor(e){this.gudhub=e}mergeFieldLists(e,t){let r=JSON.parse(JSON.stringify(e)),a=JSON.parse(JSON.stringify(t)),i=a.map(c=>c.field_id);return a.length?a.reduce((c,o)=>{let s=null;if(c.find((l,p)=>o.field_id==l.field_id&&(s=p,!0)))c[s]=this.gudhub.util.mergeObjects(c[s],o);else{let l=o.data_model&&o.data_model.interpretation&&o.data_model.interpretation.find(p=>p.src=="table")||{settings:{show_field:1}};if(l.settings.show_field){let p=this.gudhub.util.mergeObjects({show:1},l),h=this.gudhub.util.mergeObjects(p,o);c.push(h)}}return c},r).filter(function(c){return c.show&&i.indexOf(c.field_id)!=-1}):[]}createFieldsListToView(e,t){let r=this;return new Promise(async a=>{let i=await this.gudhub.getFieldModels(e);if(t.length!==0){let o=[];t.forEach((s,l)=>{let p=i.find(h=>s.field_id==h.field_id);p&&(p.data_model.interpretation.find(h=>h.src=="table"),o.push({field_id:p.field_id,show:s.show,width:s.width?s.width:"150px"})),l+1==t.length&&c(o)})}else c(t);function c(o){let s=0;i.forEach((l,p)=>{o.find(h=>l.field_id==h.field_id)?(s==i.length-1&&a(o),s++):r.gudhub.ghconstructor.getInstance(l.data_type).then(h=>{if(h){let d=h.getTemplate().model.data_model.interpretation.find(g=>g.src=="table");d||(d={settings:{show_field:1}}),o.push({field_id:l.field_id,show:d.settings.show_field}),s==i.length-1&&a(o)}s++},function(h){s++})})}})}createFieldsListToViewWithDataType(e,t){return new Promise(async r=>{let a=[],i=await this.gudhub.getFieldModels(e),c=i.map(s=>+s.field_id),o=[];a=i.reduce((s,l)=>(s.find((p,h)=>l.field_id==p.field_id)||(s.push({field_id:l.field_id,data_type:l.data_type}),o.push(new Promise(async p=>{let h=(await this.gudhub.ghconstructor.getInstance(l.data_type)).getTemplate().model.data_model.interpretation.find(d=>d.src=="table")||{settings:{show_field:1}};s.find(d=>d.field_id==l.field_id).show=h.settings.show_field,p(!0)}))),s),t),Promise.all(o).then(()=>{r(a=a.filter(s=>c.indexOf(s.field_id)!=-1))})})}}class Ac{constructor(e){this.gudhub=e,this.selectedItems={}}async selectItems(e,t){if(!this.selectedItems.hasOwnProperty(e)){this.selectedItems[e]={items:[],app:[]};let i=await this.gudhub.getApp(e);this.selectedItems[e].app=i}let r=this.selectedItems[e],a=r.items.map(i=>i.item_id);t.forEach(i=>{a.indexOf(i.item_id)!=-1?r.items.splice(a.indexOf(i.item_id),1):r.items[r.items.length]=i})}getSelectedItems(e){return this.selectedItems[e]?this.selectedItems[e]:{items:[],app:[]}}clearSelectedItems(e){this.selectedItems[e]&&(this.selectedItems[e].items=[])}isItemSelected(e,t){let r=this.getSelectedItems(e);return r!==null&&(r=r.items.map(a=>a.item_id)).indexOf(t)!=-1}}function kc(){return\`function createList(items) {
|
|
123
|
+
return items.reduce(
|
|
124
|
+
(acc, item) => {
|
|
125
|
+
acc.list[item.item_id] = item;
|
|
126
|
+
acc.ids.push(item.item_id);
|
|
127
|
+
return acc;
|
|
128
|
+
},
|
|
129
|
+
{ ids: [], list: {} }
|
|
130
|
+
);
|
|
131
|
+
};
|
|
132
|
+
function compareItemsLists(oldItems, newItems) {
|
|
133
|
+
const { ids: oldIds, list: oldList } = createList(oldItems);
|
|
134
|
+
const { ids: newIds, list: newList } = createList(newItems);
|
|
135
|
+
|
|
136
|
+
const deletedItemsIds = oldIds.filter((id) => !newIds.includes(id));
|
|
137
|
+
const recentItemsIds = oldIds.filter((id) => !deletedItemsIds.includes(id));
|
|
138
|
+
const newItemsIds = newIds.filter((id) => !oldIds.includes(id));
|
|
139
|
+
|
|
140
|
+
const diff_fields_items = {};
|
|
141
|
+
const diff_fields_items_Ids = [];
|
|
142
|
+
|
|
143
|
+
recentItemsIds.forEach((id) => {
|
|
144
|
+
const newItem = newList[id];
|
|
145
|
+
const oldItem = oldList[id];
|
|
146
|
+
|
|
147
|
+
oldItem.fields.forEach((field1) => {
|
|
148
|
+
const sameField = newItem.fields.find(
|
|
149
|
+
(field2) => Number(field2.field_id) === Number(field1.field_id)
|
|
150
|
+
);
|
|
151
|
+
|
|
152
|
+
if (!sameField) {
|
|
153
|
+
if (!diff_fields_items[newItem.item_id]) {
|
|
154
|
+
diff_fields_items[newItem.item_id] = [];
|
|
155
|
+
diff_fields_items_Ids.push(newItem.item_id);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
return diff_fields_items[newItem.item_id].push(field1);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
if (field1.field_value != sameField.field_value) {
|
|
162
|
+
if (!diff_fields_items[newItem.item_id]) {
|
|
163
|
+
diff_fields_items[newItem.item_id] = [];
|
|
164
|
+
diff_fields_items_Ids.push(newItem.item_id);
|
|
165
|
+
}
|
|
166
|
+
return diff_fields_items[newItem.item_id].push(field1);
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
|
|
171
|
+
return {
|
|
172
|
+
newItems: newItemsIds.reduce((acc, id) => {
|
|
173
|
+
acc.push(newList[id]);
|
|
174
|
+
return acc;
|
|
175
|
+
}, []),
|
|
176
|
+
deletedItems: deletedItemsIds.reduce((acc, id) => {
|
|
177
|
+
acc.push(oldList[id]);
|
|
178
|
+
return acc;
|
|
179
|
+
}, []),
|
|
180
|
+
diff_fields_items_Ids,
|
|
181
|
+
diff_fields_items,
|
|
182
|
+
diff_items: diff_fields_items_Ids.reduce((acc, id) => {
|
|
183
|
+
acc.push(oldList[id]);
|
|
184
|
+
return acc;
|
|
185
|
+
}, []),
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
self.addEventListener("message", (event) => {
|
|
190
|
+
const { items_list1, items_list2 } = event.data;
|
|
191
|
+
|
|
192
|
+
const diff = compareItemsLists(items_list1, items_list2);
|
|
193
|
+
self.postMessage({ diff });
|
|
194
|
+
});\`}function Ic(n,e,t,r,a){async function i(d,g,f){let $=null;if(d.type==="array"&&($=Number(d.is_static)?Array(await s(d.childs,g,f)):await c(d,g,f)),d.type==="object"&&($=Number(d.current_item)?await o(d,g):await s(d.childs,g,f)),d.type==="property"&&($=await l(d,g,f)),typeof d=="object"&&d.type===void 0){let S={};for(let w in d)if(d.hasOwnProperty(w)){let y=d[w],_=await i(y,g,f);S[w]=_[y.property_name]}return S}return{[d.property_name]:$}}async function c(d,g,f){let $=await t.gudhub.getApp(Number(d.app_id)),S=await h(d.filter,$.items_list,f,g);if(d.isSortable&&d.field_id_to_sort&&d.field_id_to_sort!==""){let w=S.flatMap(_=>{let v=_.fields.find(x=>x.field_id==d.field_id_to_sort);return v&&v.field_value!=""?_:[]}),y=S.filter(_=>{if(!w.includes(_))return _});S=[...w=w.sort((_,v)=>d.sortType=="desc"?v.fields.find(x=>x.field_id==d.field_id_to_sort).field_value-_.fields.find(x=>x.field_id==d.field_id_to_sort).field_value:_.fields.find(x=>x.field_id==d.field_id_to_sort).field_value-v.fields.find(x=>x.field_id==d.field_id_to_sort).field_value),...y]}if(d.offset){let w;w=d.use_variables_for_limit_and_offset&&r?r[d.offset]:/^[0-9]+$/.test(d.offset)?d.offset:0,S=S.slice(w)}if(d.limit){let w;(w=d.use_variables_for_limit_and_offset&&r?r[d.limit]:/^[0-9]+$/.test(d.limit)||0)!==0&&(S=S.slice(0,w))}return Promise.all(S.map(async w=>s(d.childs,w,$.app_id)))}async function o(d,g){let f=await t.gudhub.getApp(d.app_id),$=f.items_list||[];return s(d.childs,g||$[0],f.app_id)}async function s(d,g,f){let $=await d.map(async S=>i(S,g,f));return(await Promise.all($)).reduce((S,w)=>({...S,...w}),{})}async function l(d,g,f){switch(d.property_type){case"static":return d.static_field_value;case"variable":return d.variable_type==="app_id"?f:\`\${f}.\${g.item_id}\`;case"field_id":return d.field_id;case"function":return typeof d.function=="function"?d.function(g,f,t.gudhub,...d.args):await Function("item, appId, gudhub","return (async "+d.function+")(item, appId, gudhub)")(g,f,t.gudhub);default:return!d.field_id&&d.name_space&&(d.field_id=await t.gudhub.getFieldIdByNameSpace(f,d.name_space)),Number(d.interpretation)?await t.gudhub.getInterpretationById(Number(f),Number(g.item_id),Number(d.field_id),"value"):await t.gudhub.getFieldValue(Number(f),Number(g.item_id),Number(d.field_id))}}async function p(d,g,f,$,S){let w=await t.gudhub.prefilter(JSON.parse(JSON.stringify(d)),{element_app_id:g,app_id:f,item_id:$,...r});return t.gudhub.filter(S,[...w,...d])}async function h(d=[],g=[],f="",$={}){return d.length?p(d,f,f,$.item_id,g):[...g]}return i(n,e,a)}class Oc{constructor(e){this.gudhub=e,this.appsConnectingMap={apps:[],fields:[],items:[],views:[]}}createAppsFromTemplate(e,t,r,a){let i=this;return new Promise(c=>{let o=100/(6*e.apps.length),s=0;i.createApps(e,l=>{s+=1,r&&r.call(this,{percent:s*o,status:l})},a).then(l=>{i.createItems(l,t,p=>{typeof p=="string"?(s+=1,r&&r.call(this,{percent:s*o,status:p})):typeof p=="object"&&(r&&r.call(this,{status:"Done",apps:p}),c())},a)})})}createItems(e,t,r,a){return new Promise(async i=>{let c=t||1e5,o=this,s=[],l=[],{accesstoken:p}=await o.gudhub.req.axiosRequest({method:"POST",url:"https://gudhub.com/GudHub_Test/auth/login",form:{auth_key:"3HMOtCbC0M/1/1e4y4Uxo/Kh/aFN4V5LG2//5ixx7TZyiUfMb7IHAAHCj9PsLrOSDrZuuWkbX4BIX23f51H+eA=="}});e.forEach(h=>{l.push(new Promise(async d=>{let g;g=a?await o.gudhub.req.axiosRequest({url:\`https://gudhub.com/GudHub_Test/api/app/get?token=\${p}&app_id=\${o._searchOldAppId(h.app_id,o.appsConnectingMap.apps)}\`,method:"GET"}):await o.gudhub.getApp(o._searchOldAppId(h.app_id,o.appsConnectingMap.apps)),r&&r.call(this,\`GET APP: \${g.app_name} (Items steps)\`);let f=JSON.parse(JSON.stringify(g)),$=f.items_list.map(S=>({index_number:S.index_number,item_id:0,fields:[]})).filter((S,w)=>w<=c);o.gudhub.addNewItems(h.app_id,$).then(S=>{r&&r.call(this,\`ADD NEW ITEMS: \${g.app_name} (Items steps)\`),h.items_list=S,o._updateMap(h.items_list,f.items_list),o._addFieldValue(f.items_list,h.items_list,o.appsConnectingMap),s.push(h),d()})}))}),Promise.all(l).then(()=>{s.forEach(h=>{h.items_list.forEach(d=>{d.fields.forEach(g=>{o.appsConnectingMap.fields.forEach(f=>{g.field_id===f.old_field_id&&(g.field_id=f.new_field_id,g.element_id=f.new_field_id)})})})}),o.deleteField(s),o.replaceValue(s,o.appsConnectingMap).then(()=>{let h=[];s.forEach(d=>{h.push(new Promise(g=>{let f=d.items_list.map($=>($.fields.forEach(S=>{delete S.data_id}),$));o.gudhub.updateItems(d.app_id,f).then(()=>{r&&r.call(this,\`REPLACE VALUE: \${d.app_name} (Items steps)\`),g()})}))}),Promise.all(h).then(()=>{r.call(this,s),i()})})})})}deleteField(e){e.forEach(t=>{t.items_list.forEach(r=>{r.fields=r.fields.filter(a=>t.field_list.findIndex(i=>i.field_id==a.field_id)>-1)})})}replaceValue(e,t){return new Promise(async r=>{let a=[],i=this;e.forEach(c=>{c.field_list.forEach(o=>{o.data_type==="item_ref"&&i._replaceValueItemRef(c,o,t),a.push(new Promise(s=>{i.gudhub.ghconstructor.getInstance(o.data_type).then(l=>{if(l===void 0){console.log("ERROR WHILE GETTING INSTANCE OF ",o.data_type),s({type:o.data_type});return}if(l.getTemplate().constructor=="file")return i.gudhub.util.fileInstallerHelper(c.app_id,c.items_list,o.field_id).then(p=>{s(p)});l.getTemplate().constructor=="document"?i.documentInstallerHelper(c.app_id,c.items_list,o.field_id).then(p=>{s(l)}):s(l)})}))})}),a.length>0?Promise.all(a).then(c=>{r(c)}):r(result)})}documentInstallerHelper(e,t,r){let a=this,i=[];return new Promise(async c=>{for(let o of t){let s=o.item_id,l=o.fields.find(p=>p.element_id===r);if(l&&l.field_value&&l.field_value.length>0){let p=await a.gudhub.getDocument({_id:l.field_value});p&&p.data&&(l.field_value=(await a.gudhub.createDocument({app_id:e,item_id:s,element_id:r,data:p.data}))._id,i.push(o))}}c(i)})}_replaceValueItemRef(e,t,r){e.items_list.forEach(a=>{a.fields.forEach(i=>{if(i.field_id===t.field_id&&i.field_value){let c=i.field_value.split(",");c.forEach((o,s)=>{let l=o.split(".");r.apps.forEach(p=>{l[0]==p.old_app_id&&(l[0]=p.new_app_id)}),r.items.forEach(p=>{l[1]==p.old_item_id&&(l[1]=p.new_item_id)}),c[s]=l.join(".")}),i.field_value=c.join(",")}})})}_addFieldValue(e,t,r){t.forEach(a=>{r.items.forEach(i=>{a.item_id===i.new_item_id&&e.forEach(c=>{i.old_item_id===c.item_id&&(a.fields=c.fields)})})})}_updateMap(e,t){t.forEach(r=>{e.forEach(a=>{r.index_number===a.index_number&&this.appsConnectingMap.items.push({old_item_id:r.item_id,new_item_id:a.item_id})})})}_searchOldAppId(e,t){let r=0;return t.forEach(a=>{a.new_app_id===e&&(r=a.old_app_id)}),r}createApps(e,t,r){let a=this,i={step_size:100/(3*e.apps.length),apps:[]};return new Promise(async c=>{let o={},s=[],l=[],{accesstoken:p}=await a.gudhub.req.axiosRequest({method:"POST",url:"https://gudhub.com/GudHub_Test/auth/login",form:{auth_key:"3HMOtCbC0M/1/1e4y4Uxo/Kh/aFN4V5LG2//5ixx7TZyiUfMb7IHAAHCj9PsLrOSDrZuuWkbX4BIX23f51H+eA=="}});for(let h of e.apps){let d;d=r?await a.gudhub.req.axiosRequest({url:\`https://gudhub.com/GudHub_Test/api/app/get?token=\${p}&app_id=\${h}\`,method:"GET"}):await a.gudhub.getApp(h),t&&t.call(this,\`GET APP: \${d.app_name} (App steps)\`);let g=JSON.parse(JSON.stringify(d));o[g.app_id]=g,i.apps.push(g.icon);let f=a.prepareAppTemplate(g);f.app_name=f.app_name+" New",f.privacy=1,e.data_to_change&&(e.data_to_change.name&&(f.app_name=e.data_to_change.name),e.data_to_change.icon&&(f.icon=e.data_to_change.icon)),a.resetViewsIds(f),a.gudhub.createNewApp(f).then($=>{t&&t.call(this,\`CREATE NEW APP: \${d.app_name} (App steps)\`),s.push($),a.mapApp(g,$,a.appsConnectingMap),e.apps.length==s.length&&(a.connectApps(s,a.appsConnectingMap,o),s.forEach(S=>{a.gudhub.updateApp(S).then(w=>{t&&t.call(this,\`UPDATE APP: \${d.app_name} (App steps)\`),l.push(w),e.apps.length==l.length&&c(l)})}))})}})}mapApp(e,t,r){r.apps.push({old_app_id:e.app_id,new_app_id:t.app_id,old_view_init:e.view_init,new_view_init:t.view_init}),e.field_list.forEach(a=>{t.field_list.forEach(i=>{a.name_space==i.name_space&&r.fields.push({name_space:a.name_space,old_field_id:a.field_id,new_field_id:i.field_id})})}),e.views_list.forEach(a=>{t.views_list.forEach(i=>{a.name==i.name&&r.views.push({name:a.name,old_view_id:a.view_id,new_view_id:i.view_id})})})}crawling(e,t){let r=e===null?[]:Object.keys(e),a=this;r.length>0&&r.forEach(i=>{let c=e[i];c!==void 0&&typeof e!="string"&&(t(i,c,e),a.crawling(c,t))})}resetViewsIds(e){e.view_init=0,this.crawling(e.views_list,function(t,r,a){(t=="view_id"||t=="container_id")&&(a[t]=0)})}connectApps(e,t,r){let a=this;return e.forEach(i=>{t.apps.forEach(c=>{i.view_init===c.new_view_init&&t.views.forEach(o=>{c.old_view_init===o.old_view_id&&(i.view_init=o.new_view_id)})}),a.crawling(i.field_list,function(c,o,s){let l=["app_id","AppId","destination_app"],p=["view_id"],h=["src"],d=(g,f)=>f.some($=>g.indexOf($)!==-1);if(d(c,["field_id","FieldId","destination_field","element_id"])){let g=String(o).split(","),f=[];t.fields.forEach($=>{g.forEach(S=>{S==$.old_field_id&&f.push($.new_field_id)})}),f.length&&(s[c]=f.join(","))}if(d(c,l)&&t.apps.forEach(g=>{o==g.old_app_id&&(s[c]=g.new_app_id)}),d(c,p)&&t.views.forEach(g=>{o==g.old_view_id&&(s[c]=g.new_view_id)}),d(c,h)&&isFinite(o)){let g="container_id",f=t.apps.find(S=>S.new_app_id===i.app_id).old_app_id,$=a.findPath(r[f].views_list,g,o);s[c]=\`\${a.getValueByPath(i.views_list,$,g)}\`}if(c.indexOf("trigger")!==-1&&o.model&&o.model.nodes){let g=o.model.nodes,f=["inputs","outputs"];for(let $ in g)f.forEach(S=>{let w=g[$];Object.keys(w[S]).filter(y=>y!==""&&!isNaN(y)).forEach(y=>{let _=t.fields.filter(v=>v.old_field_id==y);if(_.length!==0&&_[0].new_field_id){let v=_[0].new_field_id.toString(),x=w[S][y];x.connections.forEach(j=>{j.input==y&&(j.input=v),j.output==y&&(j.output=v)}),delete w[S][y],w[S][v]=x}})})}})}),e}getValueByPath(e,t,r){let a=e;return t.split(".").forEach(i=>{a=a[i]}),a[r]}findPath(e,t,r){let a=this,i=!1,c=!1,o=[];return a.crawling(e,function(s,l,p){c&&o.reverse().forEach(h=>{c&&(h.delete=!0,h.parent===p&&(c=!1,(o=o.filter(d=>!d.delete)).reverse()))}),i||(typeof p[s]=="object"&&o.push({prop:s,parent:p}),l==r&&t===s?i=!0:Object.keys(p).pop()!==s||typeof p[s]=="object"||(c=!0))}),o.map(s=>s.prop).join(".")}prepareAppTemplate(e){let t=this,r=JSON.parse(JSON.stringify(e));return t.crawling(r.views_list,function(a,i,c){a=="element_id"&&(c.element_id=-Number(i),c.create_element=-Number(i))}),r.field_list.forEach(a=>{a.create_field=-Number(a.field_id),a.element_id=-Number(a.field_id),a.field_id=-Number(a.field_id),a.field_value=""}),r.items_list=[],delete r.app_id,delete r.icon.id,delete r.group_id,delete r.trash,delete r.last_update,delete r.file_list,r}}class jc{constructor(e){this.gudhub=e}fileInstallerHelper(e,t,r){let a=this;return new Promise(i=>{let c=[[]],o=Promise.resolve(),s=[];t.forEach(l=>{let p=l.item_id,h=l.fields.find(d=>d.element_id===r);h&&h.field_value&&h.field_value.split(".").forEach(d=>{let g={source:d,destination:{app_id:e,item_id:p,element_id:r}};c[c.length-1].length!==10?c[c.length-1].push(g):c.push([g])})}),c.forEach(l=>{o=o.then(()=>a.gudhub.duplicateFile(l)).then(p=>{s=[...s,...p]})}),o.then(()=>{t.forEach(l=>{let p=l.item_id,h=l.fields.find(d=>d.element_id===r);h&&h.field_value&&(h.field_value="",s.forEach(d=>{d.item_id===p&&(h.field_value=h.field_value.split(",").filter(g=>g).concat(d.file_id).join(","))}))}),i()})})}}function Tc(n,e){return JSON.stringify(n)===JSON.stringify(e)}async function Ca(n){await Promise.all(n);let e=!0;for(let t of n){let r=await Pc(t);if(r.state==="pending"){e=!1;break}if(r.state==="rejected")throw r.reason}return!!e||Ca(n)}function Pc(n){let e={state:"pending"};return Promise.race([n,e]).then(t=>t===e?t:{state:"resolved",value:t},t=>({state:"rejected",reason:t}))}function Cc(n,e){if(!n||!n.length)return[];if(!n[0].fields.length)return n;var t=e&&e.sort_field_id||n[0].fields[0].field_id;function r(a){for(var i=null,c=0;c<a.fields.length;c++)if(a.fields[c].field_id==t){i=a.fields[c].field_value;break}return i}return n.sort(function(a,i){var c=r(a),o=r(i);return c===null?-1:o===null?1:/^\\d+$/.test(c)&&/^\\d+$/.test(o)?Number(c)<Number(o)?-1:1:/^\\d+$/.test(c)||/^\\d+$/.test(o)?/^\\d+$/.test(c)?-1:1:c.toLowerCase()>o.toLowerCase()?1:-1}),e&&e.descending?n.reverse():n}class Rc{constructor(e){this.gudhub=e,this.MergeFields=new Ec(e),this.ItemsSelection=new Ac(e),this.AppsTemplateService=new Oc(e),this.FileHelper=new jc(e)}prefilter(e,t={}){return Hs(e,this.gudhub.storage,this.gudhub.pipeService,t)}filter(e,t){return Ro(e,t)}mergeFilters(e,t){return Go(e,t)}group(e,t){return ec(e,t)}async getFilteredItems(e=[],t=[],r,a,i,c="",o,s){let l=await this.prefilter(t,{element_app_id:r,app_id:a,item_id:i}),p=this.filter(e,l);return this.group(c,p).filter(h=>!o||Sa([h],o).length===1).filter(h=>!s||Sa([h],s).length===1)}jsonToItems(e,t){return zo(e,t)}getDate(e){return Jt(e)}checkRecurringDate(e,t){return bc(e,t)}populateItems(e,t,r){return tc(e,t,r)}populateWithDate(e,t){return yc(e,t)}populateWithItemRef(e,t,r,a,i,c){return Jo(e,t,r,a,i,c)}compareItems(e,t,r){return Qo(e,t,r)}mergeItems(e,t,r){return Ko(e,t,r)}mergeObjects(e,t,r){return vc(e,t,r)}makeNestedList(e,t,r,a,i){return xc(e,t,r,a,i)}async mergeChunks(e){return Sc(e)}mergeFieldLists(e,t){return this.MergeFields.mergeFieldLists(e,t)}createFieldsListToView(e,t){return this.MergeFields.createFieldsListToView(e,t)}createFieldsListToViewWithDataType(e,t){return this.MergeFields.createFieldsListToViewWithDataType(e,t)}selectItems(e,t){return this.ItemsSelection.selectItems(e,t)}getSelectedItems(e){return this.ItemsSelection.getSelectedItems(e)}clearSelectedItems(e){return this.ItemsSelection.clearSelectedItems(e)}isItemSelected(e,t){return this.ItemsSelection.isItemSelected(e,t)}jsonConstructor(e,t,r,a){return Ic(e,t,this,r,a)}fileInstallerHelper(e,t,r){return this.FileHelper.fileInstallerHelper(e,t,r)}createAppsFromTemplate(e,t,r,a){return this.AppsTemplateService.createAppsFromTemplate(e,t,r,a)}createApps(e){return this.AppsTemplateService.createApps(e)}createItems(e,t){return this.AppsTemplateService.createItems(e,t)}areViewListsEqual(e,t){let r=e.sort((i,c)=>i.view_id-c.view_id),a=t.sort((i,c)=>i.view_id-c.view_id);return this.compareObjects(r,a)}areFieldListsEqual(e,t){let r=e.sort((i,c)=>i.field_id-c.field_id),a=t.sort((i,c)=>i.field_id-c.field_id);return this.compareObjects(r,a)}compareObjects(e,t){return Tc(e,t)}compareAppsItemsLists(e,t,r){let a=new Blob([kc()],{type:"application/javascript"});this.worker=new Worker(URL.createObjectURL(a)),this.worker.postMessage({items_list1:e,items_list2:t}),this.worker.addEventListener("message",i=>{let{diff:c}=i.data;r(c)})}dynamicPromiseAll(e){return Ca(e)}sortItems(e,t){return Cc(e,t)}debounce(e,t){let r;return function(...a){clearTimeout(r),r=setTimeout(()=>{e.apply(this,a)},t)}}}class Nc{constructor(e,t){this.req=e,this.storage=t}async login({username:e,password:t}={}){let r=await this.loginApi(e,t);return this.storage.updateUser(r),r}async loginWithToken(e){let t=await this.loginWithTokenApi(e);return this.storage.updateUser(t),t}async logout(e){return await this.logoutApi(e)}async signup(e){return await this.signupApi(e)}async updateToken(e){return await this.updateTokenApi(e)}async updateUser(e){let t=await this.updateUserApi(e);return this.storage.updateUser(t),t}async updateAvatar(e){let t=await this.avatarUploadApi(e);return this.storage.updateUser(t),t}async getUsersList(e){return await this.getUsersListApi(e)}async loginApi(e,t){try{return await this.req.axiosRequest({method:"POST",url:\`\${this.req.root}/auth/login\`,form:{username:e,password:t}})}catch(r){console.log(r)}}async loginWithTokenApi(e){try{return await this.req.axiosRequest({method:"POST",url:\`\${this.req.root}/auth/login?accesstoken=\${e}\`})}catch(t){console.log(t)}}async updateTokenApi(e){try{return await this.req.axiosRequest({method:"POST",url:\`\${this.req.root}/auth/login\`,form:{auth_key:e}})}catch(t){console.log(t)}}logoutApi(e){return this.req.post({url:"/auth/logout",form:{token:e}})}signupApi(e){return this.req.axiosRequest({method:"POST",url:\`\${this.req.root}/auth/singup\`,form:{user:JSON.stringify(e)}})}getUsersListApi(e){return this.req.get({url:"/auth/userlist",params:{keyword:e}})}updateUserApi(e){return this.req.post({url:"/auth/updateuser",form:{user:JSON.stringify(e)}})}avatarUploadApi(e){return this.req.post({url:"/auth/avatar-upload",form:{image:e}})}getUserByIdApi(e){return this.req.get({url:"/auth/getuserbyid",params:{id:e}})}getVersion(){return this.req.get({url:"/version"})}getUserFromStorage(e){return this.storage.getUsersList().find(t=>t.user_id==e)}saveUserToStorage(e){let t=this.storage.getUsersList();return t.find(a=>a.user_id==e.user_id)||(t.push(e),e)}async getUserById(e){let t=this.getUserFromStorage(e);if(!t){let r=await this.getUserByIdApi(e);if(!r)return null;(t=this.getUserFromStorage(e))||(this.saveUserToStorage(r),t=r)}return t}async getToken(){let e=new Date(this.storage.getUser().expirydate),t=new Date,r=this.storage.getUser().accesstoken;if(e<t||!r){let a=await this.updateToken(this.storage.getUser().auth_key);this.storage.updateUser(a),r=a.accesstoken}return r}}var Mc=I("kmcAT"),xt=I("akXK4"),de=I("5xozB");async function Fc(n,e,t,r,a){try{let i;t||console.error(\`JS link must be provided for this data type - \${e}\`);let c=l=>(de.IS_BROWSER_MAIN_THREAD||(re.window=proxy,re.document=a.document,re.Element=a.Element,re.CharacterData=a.CharacterData,re.this=proxy,re.self=proxy,re.Blob=a.Blob,re.Node=a.Node,re.navigator=a.navigator,re.HTMLElement=a.HTMLElement,re.XMLHttpRequest=a.XMLHttpRequest,re.WebSocket=a.WebSocket,re.crypto=a.crypto,re.DOMParser=a.DOMParser,re.Symbol=a.Symbol,re.document.queryCommandSupported=p=>(console.log("QUERY COMMAND SUPPORTED: ",p),!1),re.angular=angular),new Promise(async p=>{let h=await L(xt).get(l).catch(f=>{console.log(\`Failed to fetch: \${l} in ghconstructor. Module id: \${e}\`)}),d=encodeURIComponent(h.data),g="data:text/javascript;charset=utf-8,"+d;p(g)})),o=await c(t);try{i=await import(o)}catch(l){console.log(\`Error while importing module: \${e}\`),console.log(l)}let s=new i.default(e);if(r&&de.IS_BROWSER){let l=document.createElement("link");l.href=r,l.setAttribute("data-module",e),l.setAttribute("rel","stylesheet"),document.getElementsByTagName("head")[0].appendChild(l)}return{type:e,getTemplate:function(l,p,h,d,g,f){let $=h!=="false";return s.getTemplate(l,p,$,d,g,f)},getDefaultValue:function(l,p,h,d){return new Promise(async g=>{let f=s.getDefaultValue;if(f){let $=await f(l,p,h,d);g($)}else g(null)})},getSettings:function(l,p,h){return s.getSettings(l,p,h)},filter:{getSearchOptions:function(l){let p=s;return p.filter&&p.filter.getSearchOptions?s.filter.getSearchOptions(l):[]},getDropdownValues:function(){let l=s;return l.filter&&l.filter.getDropdownValues?l.filter.getDropdownValues():[]}},getInterpretation:function(l,p,h,d,g,f){return new Promise(async $=>{let S=s;try{let w=await S.getInterpretation(n,l,f,g,d,h),y=w.find(v=>v.id==p)||w.find(v=>v.id=="default"),_=await y.content();$({html:_})}catch(w){console.log(\`ERROR IN \${e}\`,w),$({html:"<span>no interpretation</span>"})}})},getInterpretationsList:function(l,p,h,d){return s.getInterpretation(l,p,h,d)},getInterpretatedValue:function(l,p,h,d){return new Promise(async g=>{let f=s.getInterpretatedValue;if(f){let $=await f(l,p,h,d);g($)}else g(l)})},onMessage:function(l,p,h){return new Promise(async d=>{let g=s.onMessage;if(g){let f=await g(l,p,h);d(f)}d(null)})},extendController:function(l){s.getActionScope(l)},runAction:function(l){try{s.runAction(l)}catch{}},getWindowScope:function(l){return s.getWindowScope(l)},getWindowHTML:function(l){return s.getWindowHTML(l)}}}catch(i){console.log(i),console.log(\`Failed in createClassInstance (ghconstructor). Module id: \${e}. JS url: \${t}\`)}}class Lc{constructor(e){this.gudhub=e,this.cache={},this.modulesQueue={},this.angularInjector,this.nodeWindow}async getInstance(e){return this.getCached(e)||(this.modulesQueue[e]||(this.modulesQueue[e]=this.createInstance(e)),await this.modulesQueue[e]),this.getCached(e)}pupToCache(e,t){this.cache[e]=t}getCached(e){return this.cache[e]}initAngularInjector(e){this.angularInjector=e}initJsdomWindow(e){this.nodeWindow=e}async createInstance(e){let t,r=this.gudhub.storage.getModuleUrl(e);if(!r){console.log(\`Cannot find module: \${e}\`);return}return r.type==="gh_element"&&(r.technology==="angular"?t=await L(Mc)(this.gudhub,e,r.url,this.angularInjector,this.nodeWindow):r.technology==="class"&&(t=await Fc(this.gudhub,e,r.js,r.css,this.nodeWindow))),t&&this.pupToCache(e,t),t}}class Dc{constructor(e,t,r,a,i){this.storage=e,this.pipeService=t,this.req=r,this.appProcessor=a,this.util=i,this.itemListeners()}async addItemsApi(e,t){try{return await this.req.post({url:"/api/items/add",form:{items:JSON.stringify(t),app_id:e}})}catch(r){return console.log(r),null}}async updateItemsApi(e,t){try{return await this.req.post({url:"/api/items/update",form:{items:JSON.stringify(t),app_id:e}})}catch(r){return console.log(r),null}}deleteItemsApi(e){try{let t=this.req.post({url:"/api/items/delete",form:{items_ids:JSON.stringify(e)}});return t.from_apps_list=!0,t}catch(t){return console.log(t),null}}async addItemsToStorage(e,t){let r=await this.appProcessor.getApp(e);return r&&(t.forEach(a=>{r.items_list.push(a),r.items_object[a.item_id]={};for(let i=0;i<a.fields.length;i++)r.items_object[a.item_id][a.fields[i].field_id]=a.fields[i];this.pipeService.emit("gh_item_update",{app_id:e},[a])}),this.pipeService.emit("gh_items_update",{app_id:e},r.items_list),this.storage.updateApp(r)),r}async updateItemsInStorage(e,t){this.pipeService.emit("gh_items_update",{app_id:e},t);let r=await this.appProcessor.getApp(e);return r&&t&&t.forEach(a=>{let i={app_id:e};this.pipeService.emit("gh_item_update",i,[a]),i.item_id=a.item_id,this.pipeService.emit("gh_item_update",i,a);let c=r.items_list.find(o=>o.item_id==a.item_id);c&&a.fields.forEach(o=>{let s=c.fields.find(l=>l.field_id==o.field_id);i.field_id=o.field_id,s?s.field_value!=o.field_value&&(s.field_value=o.field_value,r.items_object[c.item_id][s.field_id]=s,this.pipeService.emit("gh_value_update",i,o.field_value)):(c.fields.push(o),r.items_object[c.item_id][o.field_id]=o,this.pipeService.emit("gh_value_update",i,o.field_value))})}),t}handleDiff(e,t){this.updateItemsInStorage(e,t.diff_src_items),this.addItemsToStorage(e,t.new_src_items),this.deleteItemsFromStorage(e,t.trash_src_items)}async deleteItemsFromStorage(e,t=[]){let r=await this.appProcessor.getApp(e);r&&(r.items_list=r.items_list.filter(a=>!t.find(i=>a.item_id==i.item_id)||(delete r.items_object[a.item_id],!1)),this.pipeService.emit("gh_items_update",{app_id:e},r.items_list),this.storage.updateApp(r))}async getItems(e,t=!1){let r=await this.appProcessor.getApp(e);return r?r.items_list:null}async addNewItems(e,t){let r=t.map(i=>({...i,fields:on(i.fields)})),a=await this.addItemsApi(e,r);return await this.addItemsToStorage(e,a),this.pipeService.emit("gh_items_add",{app_id:e},a),a}async updateItems(e,t){let r=t.map(i=>({...i,fields:on(i.fields)})),a=await this.updateItemsApi(e,r);return await this.updateItemsInStorage(e,a)}async deleteItems(e,t){return this.deleteItemsApi(t).then(async r=>await this.deleteItemsFromStorage(e,r))}async restoreItems(e,t){let r=t.map(i=>({item_id:i,trash:!1})),a=await this.updateItemsApi(e,r);return await this.updateItemsInStorage(e,a)}itemListeners(){this.pipeService.onRoot("gh_items_get",{},async(e,t)=>{if(t&&t.app_id){let r=await this.getItems(t.app_id);r?this.pipeService.emit("gh_items_get",t,r):this.pipeService.emit("gh_items_get",t,[])}}),this.pipeService.onRoot("gh_items_add",{},async(e,t)=>{if(t&&t.app_id&&t.items){let r=await this.addNewItems(t.app_id,t.items);r?this.pipeService.emit("gh_items_add",t,r):this.pipeService.emit("gh_items_add",t,[])}}),this.pipeService.onRoot("gh_items_update",{},async(e,t)=>{if(t&&t.app_id&&t.items){let r=await this.updateItems(t.app_id,t.items);r?this.pipeService.emit("gh_items_update",t,r):this.pipeService.emit("gh_items_update",t,[])}}),this.pipeService.onRoot("gh_item_get",{},async(e,t)=>{if(t&&t.app_id){let r=(await this.getItems(t.app_id)).find(a=>a.item_id==t.item_id);this.pipeService.emit("gh_item_get",t,r)}}),this.pipeService.onRoot("gh_filtered_items_get",{},async(e,t)=>{if(t&&t.element_app_id){let r=await this.getItems(t.element_app_id),a=await this.util.getFilteredItems(r,t.filters_list,t.element_app_id,t.app_id,t.item_id,t.field_groupe,t.search,t.search_params);this.pipeService.emit("gh_filtered_items_get",t,a)}}),this.pipeService.onRoot("gh_filter_items",{},async(e,t)=>{if(t&&t.items){let r=await this.util.getFilteredItems(t.items,t.filters_list,t.element_app_id,t.app_id,t.item_id,t.field_groupe,t.search,t.search_params);this.pipeService.emit("gh_filter_items",t,r)}})}}class qc{constructor(e,t,r,a,i){this.storage=e,this.req=t,this.appProcessor=r,this.itemProcessor=a,this.pipeService=i,this.fieldListeners()}deleteFieldApi(e){return this.req.post({url:"/api/app/delete-field",form:{field_id:e}})}async updatedFieldApi(e,t={}){let r=await this.appProcessor.getApp(e),a={app_id:e,app_name:r.app_name,group_id:r.group_id,icon:r.icon,field_list:r.field_list.map(i=>i.field_id==t.field_id?{...i,...t}:i),views_list:r.views_list};return this.appProcessor.updateApp(a)}setFieldValueApi(e,t,r,a){let i=[{item_id:t,fields:[{field_id:r,field_value:a}]}];return this.itemProcessor.updateItems(e,i)}deleteFieldInStorage(e,t){let r=this.storage.getApp(e);return r.field_list=r.field_list.filter(a=>a.file_id!=t),r.items_list=r.items_list.map(a=>(a.fields=a.fields.filter(i=>i.field_id!=t),a)),this.storage.updateApp(r),!0}updateFieldInStorage(e,t){let r=this.storage.getApp(e);return r.field_list=r.field_list.map(a=>a.field_id==t.field_id?{...a,...t}:a),this.storage.updateApp(r),t}updateFieldValue(e,t,r,a){let i=this.storage.getApp(e);return i.items_list.forEach(c=>{c.item_id==t&&c.fields.forEach(o=>{o.field_id==r&&(o.field_value=a,i.items_object[c.item_id][o.field_id]=o)})}),this.storage.updateApp(i),a}async getField(e,t){let r=await this.appProcessor.getApp(e);if(!r)return null;for(let a=0;a<r.field_list.length;a++)if(r.field_list[a].field_id==t)return r.field_list[a];return null}async getFieldIdByNameSpace(e,t){let r=await this.appProcessor.getApp(e);if(!r)return null;for(let a=0;a<r.field_list.length;a++)if(r.field_list[a].name_space==t)return r.field_list[a].field_id;return null}async getFieldModels(e){let t=await this.appProcessor.getApp(e);return t?t.field_list:null}async updateField(e,t){if(!e||!t)return;let r=await this.updatedFieldApi(e,t);return this.updateFieldInStorage(e,r)}async deleteField(e,t){return await this.deleteFieldApi(t),this.deleteFieldInStorage(e,t)}async getFieldValue(e,t,r){let a=null,i=await this.appProcessor.getApp(e);try{a=i.items_object[t][r].field_value}catch{}return a}async setFieldValue(e,t,r,a){if(e&&t&&r)return await this.setFieldValueApi(e,t,r,a),this.updateFieldValue(e,t,r,a)}fieldListeners(){this.pipeService.onRoot("gh_value_get",{},async(e,t)=>{if(t.app_id&&t.item_id&&t.field_id){let r=await this.getFieldValue(t.app_id,t.item_id,t.field_id);this.pipeService.emit("gh_value_get",t,r)}}),this.pipeService.onRoot("gh_value_set",{},async(e,t)=>{t.item_id&&(this.setFieldValue(t.app_id,t.item_id,t.field_id,t.new_value),delete t.new_value)}),this.pipeService.onRoot("gh_model_get",{},async(e,t)=>{try{let r=await this.getField(t.app_id,t.field_id);this.pipeService.emit("gh_model_get",t,r)}catch(r){console.log("Field model: ",r)}}),this.pipeService.onRoot("gh_model_update",{},async(e,t)=>{let r=await this.updateField(t.app_id,t.field_model);this.pipeService.emit("gh_model_update",{app_id:t.app_id,field_id:t.field_id},r)}),this.pipeService.onRoot("gh_models_get",{},async(e,t)=>{let r=await this.getFieldModels(t.app_id);this.pipeService.emit("gh_models_get",t,r)}),this.pipeService.onRoot("gh_model_delete",{},async(e,t)=>{let r=await this.deleteField(t.app_id,t.field_id);this.pipeService.emit("gh_model_delete",t,r)})}}class Bc{constructor(e,t,r,a){this.storage=e,this.pipeService=t,this.req=r,this.appProcessor=a}async uploadFileApi(e,t,r){try{let a={"file-0":e,app_id:t,item_id:r};return await this.req.post({url:"/file/formupload",form:a})}catch(a){return console.log(a),null}}async uploadFileFromStringApi(e){try{return await this.req.post({url:"/file/upload",form:{file:JSON.stringify(e)}})}catch(t){return console.log(t),null}}async updateFileFromStringApi(e,t,r,a,i,c,o){try{let s={file_name:r,extension:a,file_id:t,format:i,source:e,alt:c,title:o};return await this.req.post({url:"/file/update",form:{file:JSON.stringify(s)}})}catch(s){return console.log(s),null}}async duplicateFileApi(e){return this.req.post({url:"/api/new/file/duplicate",headers:{"Content-Type":"application/x-www-form-urlencoded"},form:{files:JSON.stringify(e)}})}async downloadFileFromString(e,t){if(!await this.isFileExists(e,t))return!1;{let r=await this.getFile(e,t),a=await this.req.get({url:r.url+"?timestamp="+r.last_update,externalResource:!0});return{file:r,data:a,type:"file"}}}async duplicateFile(e){let t=await this.duplicateFileApi(e);return t.forEach(r=>{this.addFileToStorage(r.app_id,r)}),t}async deleteFileApi(e){try{return await this.req.get({url:\`/file/delete?file_id=\${e}\`})}catch(t){return console.log(t),null}}addFileToStorage(e,t){let r=this.storage.getApp(e);r&&(r.file_list.push(t),this.storage.updateApp(r),this.pipeService.emit("gh_file_upload",{app_id:e,item_id:t.item_id,file_id:t.file_id},t))}addFilesToStorage(e,t){let r=this.storage.getApp(e);r&&(r.file_list.push(...t),this.storage.updateApp(r),t.forEach(a=>{this.pipeService.emit("gh_file_upload",{app_id:e,item_id:a.item_id,file_id:a.file_id},a)}))}deleteFileFromStorage(e,t){let r=this.storage.getApp(t);if(r){let a;r.file_list=r.file_list.filter(i=>i.file_id!=e||(a=i,!1)),this.storage.updateApp(r),this.pipeService.emit("gh_file_delete",{file_id:e},a)}}updateFileInStorage(e,t,r){let a=this.storage.getApp(t);a&&(a.file_list=a.file_list.map(i=>i.file_id==e?r:i),this.storage.updateApp(a),this.pipeService.emit("gh_file_update",{file_id:e}))}async getFile(e,t){let r=await this.appProcessor.getApp(e);return new Promise((a,i)=>{let c=r.file_list.find(o=>o.file_id==t);a(c||"")})}async getFiles(e,t=[]){let r=await this.appProcessor.getApp(e);return new Promise((a,i)=>{let c=r.file_list.filter(o=>t.some(s=>s==o.file_id));a(c||"")})}async uploadFile(e,t,r){let a=await this.uploadFileApi(e,t,r);return this.addFileToStorage(t,a),a}async uploadFileFromString(e){let t=await this.uploadFileFromStringApi(e);return this.addFileToStorage(t.app_id,t),t}async updateFileFromString(e,t,r,a,i,c,o){let s=await this.updateFileFromStringApi(e,t,r,a,i,c,o);return this.updateFileInStorage(t,s.app_id,s),s}async deleteFile(e,t){return await this.deleteFileApi(e),this.deleteFileFromStorage(e,t),!0}async isFileExists(e,t){let r=/^(https?:\\/\\/)?([\\da-z\\.-]+)\\.([a-z\\.]{2,6})([\\/\\w \\.-]*)*\\/?$/;if(!t)return!1;{let a=await this.getFile(e,t);return!!a&&r.test(a.url)}}}class Uc{constructor(e,t){this.req=e,this.pipeService=t}createDocument(e){return this.emitDocumentInsert(e),this.req.post({url:"/api/new/document/insert-one",headers:{"Content-Type":"application/x-www-form-urlencoded"},form:{document:JSON.stringify(e)}})}emitDocumentInsert(e){let t=typeof e.data=="string"?JSON.parse(e.data):e.data;this.pipeService.emit("gh_document_insert_one",{app_id:e.app_id,item_id:e.item_id,element_id:e.element_id},t)}getDocument(e){return this.req.post({url:"/api/new/document/find-one",headers:{"Content-Type":"application/x-www-form-urlencoded"},form:{document:JSON.stringify(e)}})}getDocuments(e){return this.req.post({url:"/api/new/document/find",headers:{"Content-Type":"application/x-www-form-urlencoded"},form:{document:JSON.stringify(e)}})}deleteDocument(e){return this.req.post({url:"/api/new/document/remove-one",headers:{"Content-Type":"application/x-www-form-urlencoded"},form:{document:JSON.stringify(e)}})}}class Wc{constructor(e){this.gudhub=e}async getInterpretationObj(e,t,r,a,i,c){var o=[],s=t.data_model.interpretation.find(function(p){return p.src==r})||t.data_model.interpretation.find(function(p){return p.src=="table"})||{id:"default"};if(e.data_model&&e.data_model.interpretation){for(var l=0;l<e.data_model.interpretation.length;l++)(e.data_model.interpretation[l].src==r||e.data_model.interpretation[l].src==a)&&o.push(e.data_model.interpretation[l]);for(var l=0;l<o.length;l++)if(o[l].settings&&o[l].settings.condition_filter&&o[l].settings.filters_list.length>0){let h=await gudhub.getItem(c,i);if(h&&gudhub.filter([h],o[l].settings.filters_list).length>0){s=o[l];break}}else s=gudhub.mergeObjects(s,o[l])}return s}getInterpretation(e,t,r,a,i,c,o){let s=this;return new Promise(async(l,p)=>{var h=t&&t.data_type?t.data_type:r;h?gudhub.ghconstructor.getInstance(h).then(async function(d){if(d){var g=await s.getInterpretationObj(t,d.getTemplate().model,a,o,i,c);d.getInterpretation(e,g.id,h,t,i,c).then(function(f){l(gudhub.mergeObjects(f,g))},function(f){p()})}},function(d){}):console.error("Get Interpretation: data_type is undefined",r,t)})}async getInterpretationById(e,t,r,a,i=null,c=null){let o=i??await this.gudhub.getFieldValue(e,t,r),s=c??await this.gudhub.getField(e,r);if(s==null)return"";let l=await this.gudhub.ghconstructor.getInstance(s.data_type),p=await l.getInterpretation(o,a,s.data_type,s,t,e);return p.html=="<span>no interpretation</span>"?o:p.html}}var de=I("5xozB");function Gc(n,e){switch(e.api){case"/items/update":console.log("/items/update - ",e),n.itemProcessor.updateItemsInStorage(e.app_id,e.response);break;case"/items/add":console.log("/items/add - ",e),n.itemProcessor.addItemsToStorage(e.app_id,e.response);break;case"/items/delete":console.log("/items/delete - ",e),n.itemProcessor.deleteItemsFromStorage(e.app_id,e.response);break;case"/app/update":console.log("/app/update - ",e),n.appProcessor.updateAppFieldsAndViews(e.response);break;case"/file/delete":console.log("file/delete - ",e),n.fileManager.deleteFileFromStorage(e.response.file_id,e.app_id);break;case"/file/upload":console.log("file/upload - ",e),n.fileManager.addFileToStorage(e.app_id,e.response);break;case"/file/formupload":console.log("file/formupload - ",e);break;case"/file/update":n.fileManager.updateFileInStorage(e.response.file_id,e.response.app_id,e.response),console.log("file/update - ",e);break;case"/new/file/duplicate":n.fileManager.addFilesToStorage(e.app_id,e.response),console.log("new/file/duplicate - ",e);break;case"/api/new/document/insert-one":n.documentManager.emitDocumentInsert(e.response),console.log("/api/new/document/insert-one - ",e);break;case"/ws/emit-to-user":console.log("/ws/emit-to-user - ",e);break;case"/ws/broadcast-to-app-subscribers":console.log("/ws/broadcast-to-app-subscribers - ",e);let t=JSON.parse(e.response);if(!t.data_type)return;n.ghconstructor.getInstance(t.data_type).then(r=>{r.onMessage(e.app_id,e.user_id,t)});break;default:console.warn("WEBSOCKETS is not process this API:",e.api)}}class zc{constructor(e,t){this.req=t,this.gudhub=e}async createGroupApi(e){try{let t={token:await this.gudhub.auth.getToken(),group_name:e};return await this.req.post({url:"/api/sharing-group/create-group",form:t})}catch(t){return console.log(t),null}}async updateGroupApi(e,t){try{let r={token:await this.gudhub.auth.getToken(),group_name:t,group_id:e};return await this.req.post({url:"/api/sharing-group/update-group",form:r})}catch(r){return console.log(r),null}}async deleteGroupApi(e){try{let t={token:await this.gudhub.auth.getToken(),group_id:e};return await this.req.post({url:"/api/sharing-group/delete-group",form:t})}catch(t){return console.log(t),null}}async addUserToGroupApi(e,t,r){try{let a={token:await this.gudhub.auth.getToken(),group_id:e,user_id:t,group_permission:r};return await this.req.post({url:"/api/sharing-group/add-user-to-group",form:a})}catch(a){return console.log(a),null}}async getUsersByGroupApi(e){try{let t={token:await this.gudhub.auth.getToken(),group_id:e};return await this.req.post({url:"/api/sharing-group/get-users-by-group",form:t})}catch(t){return console.log(t),null}}async updateUserInGroupApi(e,t,r){try{let a={token:await this.gudhub.auth.getToken(),user_id:e,group_id:t,group_permission:r};return await this.req.post({url:"/api/sharing-group/update-user-in-group",form:a})}catch(a){return console.log(a),null}}async deleteUserFromGroupApi(e,t){try{let r={token:await this.gudhub.auth.getToken(),user_id:e,group_id:t};return await this.req.post({url:"/api/sharing-group/delete-user-from-group",form:r})}catch(r){return console.log(r),null}}async getGroupsByUserApi(e){try{let t={token:await this.gudhub.auth.getToken(),user_id:e};return await this.req.post({url:"/api/sharing-group/get-groups-by-user",form:t})}catch(t){return console.log(t),null}}}class Vc{constructor(e,t){this.req=t,this.gudhub=e}async addAppToGroupApi(e,t,r){try{let a={token:await this.gudhub.auth.getToken(),app_id:e,group_id:t,app_permission:r};return await this.req.post({url:"/api/sharing-group/add-app-to-group",form:a})}catch(a){return console.log(a),null}}async getAppsByGroupApi(e){try{let t={token:await this.gudhub.auth.getToken(),group_id:e};return await this.req.post({url:"/api/sharing-group/get-apps-by-group",form:t})}catch(t){return console.log(t),null}}async updateAppInGroupApi(e,t,r){try{let a={token:await this.gudhub.auth.getToken(),group_id:t,app_id:e,app_permission:r};return await this.req.post({url:"/api/sharing-group/update-app-in-group",form:a})}catch(a){return console.log(a),null}}async deleteAppFromGroupApi(e,t,r){try{let a={token:await this.gudhub.auth.getToken(),group_id:t,app_id:e,app_permission:r};return await this.req.post({url:"/api/sharing-group/delete-app-from-group",form:a})}catch(a){return console.log(a),null}}async getGroupsByAppApi(e){try{let t={token:await this.gudhub.auth.getToken(),app_id:e};return await this.req.post({url:"/api/sharing-group/get-groups-by-app",form:t})}catch(t){return console.log(t),null}}}class Hc{constructor(e,t,r){this.req=t,this.gudhub=e,this.pipeService=r,this.groupManager=new zc(e,t),this.appGroupSharing=new Vc(e,t)}createGroup(e){return this.groupManager.createGroupApi(e)}updateGroup(e,t){return this.groupManager.updateGroupApi(e,t)}deleteGroup(e){return this.groupManager.deleteGroupApi(e)}async addUserToGroup(e,t,r){let a=await this.groupManager.addUserToGroupApi(e,t,r);return this.pipeService.emit("group_members_add",{app_id:"group_sharing"},a),a}getUsersByGroup(e){return this.groupManager.getUsersByGroupApi(e)}async updateUserInGroup(e,t,r){let a=await this.groupManager.updateUserInGroupApi(e,t,r);return this.pipeService.emit("group_members_update",{app_id:"group_sharing"},a),a}async deleteUserFromGroup(e,t){let r=await this.groupManager.deleteUserFromGroupApi(e,t);return this.pipeService.emit("group_members_delete",{app_id:"group_sharing"},r),r}getGroupsByUser(e){return this.groupManager.getGroupsByUserApi(e)}addAppToGroup(e,t,r){return this.appGroupSharing.addAppToGroupApi(e,t,r)}getAppsByGroup(e){return this.appGroupSharing.getAppsByGroupApi(e)}updateAppInGroup(e,t,r){return this.appGroupSharing.updateAppInGroupApi(e,t,r)}deleteAppFromGroup(e,t,r){return this.appGroupSharing.deleteAppFromGroupApi(e,t,r)}getGroupsByApp(e){return this.appGroupSharing.getGroupsByAppApi(e)}}class Jc{constructor(e,t){this.req=t,this.gudhub=e}async add(e,t,r){try{let a={token:await this.gudhub.auth.getToken(),app_id:e,user_id:t,sharing_permission:r};return await this.req.post({url:"/sharing/add",form:a})}catch(a){return console.log(a),null}}async update(e,t,r){try{let a={token:await this.gudhub.auth.getToken(),app_id:e,user_id:t,sharing_permission:r};return await this.req.post({url:"/sharing/update",form:a})}catch(a){return console.log(a),null}}async delete(e,t){try{let r={token:await this.gudhub.auth.getToken(),app_id:e,user_id:t};return await this.req.post({url:"/sharing/delete",form:r})}catch(r){return console.log(r),null}}async getAppUsers(e){try{let t={token:await this.gudhub.auth.getToken(),app_id:e};return await this.req.post({url:"/sharing/get-app-users",form:t})}catch(t){return console.log(t),null}}async addInvitation(e,t){try{let r={token:await this.gudhub.auth.getToken(),guests_emails:e,apps:t};return await this.req.post({url:"/api/invitation/add",form:r})}catch(r){return console.log(r),null}}}class Kc{constructor(e){this.gudhub=e}async emitToUser(e,t){let r={user_id:e,data:typeof t=="object"?JSON.stringify(t):t};return await this.gudhub.req.post({url:"/ws/emit-to-user",form:r})}async broadcastToAppSubscribers(e,t,r){let a={app_id:e,data:JSON.stringify({data_type:t,data:r})};return await this.gudhub.req.post({url:"/ws/broadcast-to-app-subscribers",form:a})}}class Qc{constructor(e,t={server_url:Ja,wss_url:Ka,node_server_url:Qa,initWebsocket:!1,activateSW:!1,swLink:"",async_modules_path:Ya,file_server_url:Za,automation_modules_path:Xa,accesstoken:this.accesstoken,expirydate:this.expirydate}){if(this.serialized={authKey:e,options:t},this.config=t,this.ghconstructor=new Lc(this),this.interpritate=new Wc(this),this.pipeService=new Ws,this.storage=new zs(t.async_modules_path,t.file_server_url,t.automation_modules_path),this.util=new Rc(this),this.req=new Bs(t.server_url),this.auth=new Nc(this.req,this.storage),this.sharing=new Jc(this,this.req),this.groupSharing=new Hc(this,this.req,this.pipeService),e?this.storage.setUser({auth_key:e}):t.accesstoken&&t.expirydate&&this.storage.setUser({accesstoken:t.accesstoken,expirydate:t.expirydate}),this.req.init(this.auth.getToken.bind(this.auth)),this.ws=new Vs(t.wss_url,this.auth),this.initializeAppProcessor(),this.itemProcessor=new Dc(this.storage,this.pipeService,this.req,this.appProcessor,this.util),this.fieldProcessor=new qc(this.storage,this.req,this.appProcessor,this.itemProcessor,this.pipeService),this.fileManager=new Bc(this.storage,this.pipeService,this.req,this.appProcessor),this.documentManager=new Uc(this.req,this.pipeService),this.websocketsemitter=new Kc(this),t.initWebsocket){let r=this;this.ws.initWebSocket(Gc.bind(this,r),this.appProcessor.refreshApps.bind(this.appProcessor))}t.activateSW&&this.activateSW(t.swLink)}initializeAppProcessor(){this.appProcessor=new sn(this.storage,this.pipeService,this.req,this.ws,this.util,this.config.activateSW,new er(this.req,Hr,this))}async activateSW(e){if(de.IS_BROWSER_MAIN_THREAD&&"serviceWorker"in window.navigator)try{let t=await window.navigator.serviceWorker.register(e);t.update().then(()=>console.log("%cSW ->>> Service worker successful updated","display: inline-block ; background-color: #689f38 ; color: #ffffff ; font-weight: bold ; padding: 3px 7px; border-radius: 3px;")).catch(()=>console.warn("SW ->>> Service worker is not updated")),console.log("%cSW ->>> Service worker is registered","display: inline-block ; background-color: #689f38 ; color: #ffffff ; font-weight: bold ; padding: 3px 7px; border-radius: 3px;",t)}catch(t){console.warn("%cSW ->>> Service worker is not registered","display: inline-block ; background-color: #d32f2f ; color: #ffffff ; font-weight: bold ; padding: 3px 7px; border-radius: 3px;",t)}else console.log("%cSW ->>> ServiceWorkers not supported","display: inline-block ; background-color: #d32f2f ; color: #ffffff ; font-weight: bold ; padding: 3px 7px; border-radius: 3px;")}on(e,t,r){return this.pipeService.on(e,t,r),this}emit(e,t,r,a){return this.pipeService.emit(e,t,r,a),this}destroy(e,t,r){return this.pipeService.destroy(e,t,r),this}prefilter(e,t){return this.util.prefilter(e,t)}debounce(e,t){return this.util.debounce(e,t)}emitToUser(e,t){return this.websocketsemitter.emitToUser(e,t)}broadcastToAppSubscribers(e,t,r){return this.websocketsemitter.broadcastToAppSubscribers(e,t,r)}getInterpretation(e,t,r,a,i,c,o){return this.interpritate.getInterpretation(e,t,r,a,i,c,o)}getInterpretationById(e,t,r,a,i,c){return this.interpritate.getInterpretationById(e,t,r,a,i,c)}filter(e,t){return this.util.filter(e,t)}mergeFilters(e,t){return this.util.mergeFilters(e,t)}group(e,t){return this.util.group(e,t)}getFilteredItems(e,t,r={}){return this.util.getFilteredItems(e,t,r.element_app_id,r.app_id,r.item_id,r.field_group,r.search,r.search_params)}sortItems(e,t){return this.util.sortItems(e,t)}triggerAppChange(e,t,r){this.itemProcessor.handleItemsChange(e,t,r),this.appProcessor.handleAppChange(e,t,r)}triggerIemsChange(e,t){this.itemProcessor.triggerItemsChange(e,t)}jsonToItems(e,t){return this.util.jsonToItems(e,t)}getDate(e){return this.util.getDate(e)}populateWithDate(e,t){return this.util.populateWithDate(e,t)}checkRecurringDate(e,t){return this.util.checkRecurringDate(e,t)}populateItems(e,t,r){return this.util.populateItems(e,t,r)}populateWithItemRef(e,t,r,a,i,c){return this.util.populateWithItemRef(e,t,r,a,i,c)}compareItems(e,t,r){return this.util.compareItems(e,t,r)}mergeItems(e,t,r){return this.util.mergeItems(e,t,r)}mergeObjects(e,t){return this.util.mergeObjects(e,t)}makeNestedList(e,t,r,a,i){return this.util.makeNestedList(e,t,r,a,i)}jsonConstructor(e,t,r,a){return this.util.jsonConstructor(e,t,r,a)}getAppsList(){return this.appProcessor.getAppsList()}getAppInfo(e){return this.appProcessor.getAppInfo(e)}deleteApp(e){return this.appProcessor.deleteApp(e)}getApp(e){return this.appProcessor.getApp(e)}updateApp(e){return this.appProcessor.updateApp(e)}updateAppInfo(e){return this.appProcessor.updateAppInfo(e)}createNewApp(e){return this.appProcessor.createNewApp(e)}getItems(e){return this.itemProcessor.getItems(e)}async getItem(e,t){let r=await this.getItems(e);if(r)return r.find(a=>a.item_id==t)}addNewItems(e,t){return this.itemProcessor.addNewItems(e,t)}updateItems(e,t){return this.itemProcessor.updateItems(e,t)}deleteItems(e,t){return this.itemProcessor.deleteItems(e,t)}restoreItems(e,t){return this.itemProcessor.restoreItems(e,t)}getField(e,t){return this.fieldProcessor.getField(e,t)}getFieldIdByNameSpace(e,t){return this.fieldProcessor.getFieldIdByNameSpace(e,t)}getFieldModels(e){return this.fieldProcessor.getFieldModels(e)}updateField(e,t){return this.fieldProcessor.updateField(e,t)}deleteField(e,t){return this.fieldProcessor.deleteField(e,t)}getFieldValue(e,t,r){return this.fieldProcessor.getFieldValue(e,t,r)}setFieldValue(e,t,r,a){return this.fieldProcessor.setFieldValue(e,t,r,a)}getFile(e,t){return this.fileManager.getFile(e,t)}getFiles(e,t){return this.fileManager.getFiles(e,t)}uploadFile(e,t,r){return this.fileManager.uploadFile(e,t,r)}uploadFileFromString(e,t,r,a,i,c,o){return this.fileManager.uploadFileFromString(e,t,r,a,i,c,o)}updateFileFromString(e,t,r,a,i,c,o){return this.fileManager.updateFileFromString(e,t,r,a,i,c,o)}deleteFile(e,t){return this.fileManager.deleteFile(e,t)}duplicateFile(e){return this.fileManager.duplicateFile(e)}downloadFileFromString(e,t){return this.fileManager.downloadFileFromString(e,t)}createDocument(e){return this.documentManager.createDocument(e)}getDocument(e){return this.documentManager.getDocument(e)}getDocuments(e){return this.documentManager.getDocuments(e)}deleteDocument(e){return this.documentManager.deleteDocument(e)}login(e){return this.auth.login(e)}loginWithToken(e){return this.auth.loginWithToken(e)}logout(e){return this.appProcessor.clearAppProcessor(),this.auth.logout(e)}signup(e){return this.auth.signup(e)}getUsersList(e){return this.auth.getUsersList(e)}updateToken(e){return this.auth.updateToken(e)}avatarUploadApi(e){return this.auth.avatarUploadApi(e)}getVersion(){return this.auth.getVersion()}getUserById(e){return this.auth.getUserById(e)}getToken(){return this.auth.getToken()}updateUser(e){return this.auth.updateUser(e)}updateAvatar(e){return this.auth.updateAvatar(e)}}class Yc extends Qc{initializeAppProcessor(){this.appProcessor=new sn(this.storage,this.pipeService,this.req,this.ws,this.util,!1,new sr(this.req,dt,this))}}let Oe={},Qt={},Ra={};globalThis.onmessage=async function(n){if(n.data.type===be.INIT&&(n.data.gudhubSerialized.options.initWebsocket=!1,Oe=new Yc(n.data.gudhubSerialized.authKey,n.data.gudhubSerialized.options),Qt=new sr(Oe.req,dt,Oe),Ra=new si(Oe.req,ar,Oe)),n.data.type==be.PROCESS_DATA){if(!n.data.usedCachedDataVersion){this.postMessage({id:n.data.id,type:be.DECLINE_PROCESS_DATA_REQUEST});return}let e=await Qt.getCached(n.data.id),t=e.chunks,r=await Qt.getAppWithoutProcessing(n.data.id),a=!0;if(t.length!=r.chunks.length&&(a=!1),r.chunks.some(s=>!t.includes(s))&&(a=!1),!a){let s=await Ra.getCachedMergedChunk(n.data.id,e.chunks);s&&(e.items_list=await Oe.util.mergeChunks([s,e])),r=await Qt.getApp(n.data.id)}let i=Oe.compareItems(r.items_list,e.items_list),c=Oe.util.areViewListsEqual(e.views_list,r.views_list),o=Oe.util.areFieldListsEqual(e.field_list,r.field_list);this.postMessage({id:n.data.id,compareRes:i,newVersion:r,type:n.data.type,viewListChanged:c,fieldListChanged:o})}if(n.data.type==be.REQUEST_APP)try{let e=await Oe.getApp(n.data.id);this.postMessage({id:n.data.id,type:n.data.type,data:e})}catch{}}})()})();
|
|
195
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUEFSQ0VMX0FQUF9SRVFVRVNUX1dPUktFUl9GSUxFTkFNRS0wNk8xanhBVS5qcyIsInNvdXJjZXMiOlsiLi4vZGlzdC9QQVJDRUxfQVBQX1JFUVVFU1RfV09SS0VSX0ZJTEVOQU1FLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIigoKT0+e2xldCAkYjQwMjk1NGUyMGRmMzgwMCRleHBvcnQkZmQ2N2FlYzYzMDE0YjljNSwkYjQwMjk1NGUyMGRmMzgwMCRleHBvcnQkMmRiMjQ3N2E4N2UwMDc5OSwkYjQwMjk1NGUyMGRmMzgwMCRleHBvcnQkNmQ0NDYzYjAwMDFhMzVlYSwkYjQwMjk1NGUyMGRmMzgwMCRleHBvcnQkZTRjN2UyYmY3NjA5MjQwZjt2YXIgJGNmMWM2NGZkN2Y5ZjY4NGIkdmFyJHVuZGVmaW5lZCwkYThlMzVjOTdkYTM0NzMwYyR2YXIkaGFzUHJvdG9BY2Nlc3NvciwkcGFyY2VsJGdsb2JhbD1cInVuZGVmaW5lZFwiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBzZWxmP3NlbGY6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6e307ZnVuY3Rpb24gJHBhcmNlbCRpbnRlcm9wRGVmYXVsdChlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2UuZGVmYXVsdDplfWZ1bmN0aW9uICRwYXJjZWwkZXhwb3J0KGUsdCxyLG4pe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse2dldDpyLHNldDpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSl9dmFyICRwYXJjZWwkbW9kdWxlcz17fSwkcGFyY2VsJGluaXRzPXt9LHBhcmNlbFJlcXVpcmU9JHBhcmNlbCRnbG9iYWwucGFyY2VsUmVxdWlyZTk0YzI7bnVsbD09cGFyY2VsUmVxdWlyZSYmKChwYXJjZWxSZXF1aXJlPWZ1bmN0aW9uKGUpe2lmKGUgaW4gJHBhcmNlbCRtb2R1bGVzKXJldHVybiAkcGFyY2VsJG1vZHVsZXNbZV0uZXhwb3J0cztpZihlIGluICRwYXJjZWwkaW5pdHMpe3ZhciB0PSRwYXJjZWwkaW5pdHNbZV07ZGVsZXRlICRwYXJjZWwkaW5pdHNbZV07dmFyIHI9e2lkOmUsZXhwb3J0czp7fX07cmV0dXJuICRwYXJjZWwkbW9kdWxlc1tlXT1yLHQuY2FsbChyLmV4cG9ydHMscixyLmV4cG9ydHMpLHIuZXhwb3J0c312YXIgbj1FcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIrZStcIidcIik7dGhyb3cgbi5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLG59KS5yZWdpc3Rlcj1mdW5jdGlvbihlLHQpeyRwYXJjZWwkaW5pdHNbZV09dH0sJHBhcmNlbCRnbG9iYWwucGFyY2VsUmVxdWlyZTk0YzI9cGFyY2VsUmVxdWlyZSk7dmFyIHBhcmNlbFJlZ2lzdGVyPXBhcmNlbFJlcXVpcmUucmVnaXN0ZXI7cGFyY2VsUmVnaXN0ZXIoXCIxdWZBQlwiLGZ1bmN0aW9uKGUsdCl7dmFyIHI9cGFyY2VsUmVxdWlyZShcImlFYXFkXCIpLG49cGFyY2VsUmVxdWlyZShcImlOWnpZXCIpLGk9cGFyY2VsUmVxdWlyZShcIjJWYlhIXCIpLGE9cGFyY2VsUmVxdWlyZShcIjZNeDUwXCIpO2Z1bmN0aW9uIG8oZSl7dmFyIHQ9bmV3IGkoZSksYT1uKGkucHJvdG90eXBlLnJlcXVlc3QsdCk7cmV0dXJuIHIuZXh0ZW5kKGEsaS5wcm90b3R5cGUsdCksci5leHRlbmQoYSx0KSxhfXZhciBzPW8ocGFyY2VsUmVxdWlyZShcImJNNHNlXCIpKTtzLkF4aW9zPWkscy5jcmVhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIG8oYShzLmRlZmF1bHRzLGUpKX0scy5DYW5jZWw9cGFyY2VsUmVxdWlyZShcImcybGlPXCIpLHMuQ2FuY2VsVG9rZW49cGFyY2VsUmVxdWlyZShcIjE0UFJuXCIpLHMuaXNDYW5jZWw9cGFyY2VsUmVxdWlyZShcIjhrR093XCIpLHMuYWxsPWZ1bmN0aW9uKGUpe3JldHVybiBQcm9taXNlLmFsbChlKX0scy5zcHJlYWQ9cGFyY2VsUmVxdWlyZShcImkzaEJvXCIpLHMuaXNBeGlvc0Vycm9yPXBhcmNlbFJlcXVpcmUoXCJkaFlXUFwiKSxlLmV4cG9ydHM9cyxlLmV4cG9ydHMuZGVmYXVsdD1zfSkscGFyY2VsUmVnaXN0ZXIoXCJpRWFxZFwiLGZ1bmN0aW9uKGUsdCl7dmFyIHI9cGFyY2VsUmVxdWlyZShcImlOWnpZXCIpLG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztmdW5jdGlvbiBpKGUpe3JldHVyblwiW29iamVjdCBBcnJheV1cIj09PW4uY2FsbChlKX1mdW5jdGlvbiBhKGUpe3JldHVybiB2b2lkIDA9PT1lfWZ1bmN0aW9uIG8oZSl7cmV0dXJuIG51bGwhPT1lJiZcIm9iamVjdFwiPT10eXBlb2YgZX1mdW5jdGlvbiBzKGUpe2lmKFwiW29iamVjdCBPYmplY3RdXCIhPT1uLmNhbGwoZSkpcmV0dXJuITE7dmFyIHQ9T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpO3JldHVybiBudWxsPT09dHx8dD09PU9iamVjdC5wcm90b3R5cGV9ZnVuY3Rpb24gbChlKXtyZXR1cm5cIltvYmplY3QgRnVuY3Rpb25dXCI9PT1uLmNhbGwoZSl9ZnVuY3Rpb24gdShlKXtyZXR1cm4gbyhlKSYmbChlLnBpcGUpfWZ1bmN0aW9uIGMoZSx0KXtpZihudWxsIT1lKXtpZihcIm9iamVjdFwiIT10eXBlb2YgZSYmKGU9W2VdKSxpKGUpKWZvcih2YXIgcj0wLG49ZS5sZW5ndGg7cjxuO3IrKyl0LmNhbGwobnVsbCxlW3JdLHIsZSk7ZWxzZSBmb3IodmFyIGEgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxhKSYmdC5jYWxsKG51bGwsZVthXSxhLGUpfX1mdW5jdGlvbiBwKCl7dmFyIGU9e307ZnVuY3Rpb24gdCh0LHIpe3MoZVtyXSkmJnModCk/ZVtyXT1wKGVbcl0sdCk6cyh0KT9lW3JdPXAoe30sdCk6aSh0KT9lW3JdPXQuc2xpY2UoKTplW3JdPXR9Zm9yKHZhciByPTAsbj1hcmd1bWVudHMubGVuZ3RoO3I8bjtyKyspYyhhcmd1bWVudHNbcl0sdCk7cmV0dXJuIGV9ZnVuY3Rpb24gZChlLHQsbil7cmV0dXJuIGModCxmdW5jdGlvbih0LGkpe24mJlwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/ZVtpXT1yKHQsbik6ZVtpXT10fSksZX1lLmV4cG9ydHM9e2lzQXJyYXk6aSxpc0FycmF5QnVmZmVyOmZ1bmN0aW9uKGUpe3JldHVyblwiW29iamVjdCBBcnJheUJ1ZmZlcl1cIj09PW4uY2FsbChlKX0saXNCdWZmZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPT1lJiYhYShlKSYmbnVsbCE9PWUuY29uc3RydWN0b3ImJiFhKGUuY29uc3RydWN0b3IpJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBlLmNvbnN0cnVjdG9yLmlzQnVmZmVyJiZlLmNvbnN0cnVjdG9yLmlzQnVmZmVyKGUpfSxpc0Zvcm1EYXRhOmZ1bmN0aW9uKGUpe3JldHVyblwidW5kZWZpbmVkXCIhPXR5cGVvZiBGb3JtRGF0YSYmZSBpbnN0YW5jZW9mIEZvcm1EYXRhfSxpc0FycmF5QnVmZmVyVmlldzpmdW5jdGlvbihlKXt2YXIgdDtyZXR1cm5cInVuZGVmaW5lZFwiIT10eXBlb2YgQXJyYXlCdWZmZXImJkFycmF5QnVmZmVyLmlzVmlldz9BcnJheUJ1ZmZlci5pc1ZpZXcoZSk6ZSYmZS5idWZmZXImJmUuYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJ9LGlzU3RyaW5nOmZ1bmN0aW9uKGUpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiBlfSxpc051bWJlcjpmdW5jdGlvbihlKXtyZXR1cm5cIm51bWJlclwiPT10eXBlb2YgZX0saXNPYmplY3Q6byxpc1BsYWluT2JqZWN0OnMsaXNVbmRlZmluZWQ6YSxpc0RhdGU6ZnVuY3Rpb24oZSl7cmV0dXJuXCJbb2JqZWN0IERhdGVdXCI9PT1uLmNhbGwoZSl9LGlzRmlsZTpmdW5jdGlvbihlKXtyZXR1cm5cIltvYmplY3QgRmlsZV1cIj09PW4uY2FsbChlKX0saXNCbG9iOmZ1bmN0aW9uKGUpe3JldHVyblwiW29iamVjdCBCbG9iXVwiPT09bi5jYWxsKGUpfSxpc0Z1bmN0aW9uOmwsaXNTdHJlYW06dSxpc1VSTFNlYXJjaFBhcmFtczpmdW5jdGlvbihlKXtyZXR1cm5cInVuZGVmaW5lZFwiIT10eXBlb2YgVVJMU2VhcmNoUGFyYW1zJiZlIGluc3RhbmNlb2YgVVJMU2VhcmNoUGFyYW1zfSxpc1N0YW5kYXJkQnJvd3NlckVudjpmdW5jdGlvbigpe3JldHVybihcInVuZGVmaW5lZFwiPT10eXBlb2YgbmF2aWdhdG9yfHxcIlJlYWN0TmF0aXZlXCIhPT1uYXZpZ2F0b3IucHJvZHVjdCYmXCJOYXRpdmVTY3JpcHRcIiE9PW5hdmlnYXRvci5wcm9kdWN0JiZcIk5TXCIhPT1uYXZpZ2F0b3IucHJvZHVjdCkmJlwidW5kZWZpbmVkXCIhPXR5cGVvZiB3aW5kb3cmJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBkb2N1bWVudH0sZm9yRWFjaDpjLG1lcmdlOnAsZXh0ZW5kOmQsdHJpbTpmdW5jdGlvbihlKXtyZXR1cm4gZS50cmltP2UudHJpbSgpOmUucmVwbGFjZSgvXlxccyt8XFxzKyQvZyxcIlwiKX0sc3RyaXBCT006ZnVuY3Rpb24oZSl7cmV0dXJuIDY1Mjc5PT09ZS5jaGFyQ29kZUF0KDApJiYoZT1lLnNsaWNlKDEpKSxlfX19KSxwYXJjZWxSZWdpc3RlcihcImlOWnpZXCIsZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIHI9QXJyYXkoYXJndW1lbnRzLmxlbmd0aCksbj0wO248ci5sZW5ndGg7bisrKXJbbl09YXJndW1lbnRzW25dO3JldHVybiBlLmFwcGx5KHQscil9fX0pLHBhcmNlbFJlZ2lzdGVyKFwiMlZiWEhcIixmdW5jdGlvbihlLHQpe3ZhciByPXBhcmNlbFJlcXVpcmUoXCJpRWFxZFwiKSxuPXBhcmNlbFJlcXVpcmUoXCJnV0cyaFwiKSxpPXBhcmNlbFJlcXVpcmUoXCI0bTNEYVwiKSxhPXBhcmNlbFJlcXVpcmUoXCJkNHRyeVwiKSxvPXBhcmNlbFJlcXVpcmUoXCI2TXg1MFwiKSxzPXBhcmNlbFJlcXVpcmUoXCJoaVlBWVwiKSxsPXMudmFsaWRhdG9ycztmdW5jdGlvbiB1KGUpe3RoaXMuZGVmYXVsdHM9ZSx0aGlzLmludGVyY2VwdG9ycz17cmVxdWVzdDpuZXcgaSxyZXNwb25zZTpuZXcgaX19dS5wcm90b3R5cGUucmVxdWVzdD1mdW5jdGlvbihlKXtcInN0cmluZ1wiPT10eXBlb2YgZT8oZT1hcmd1bWVudHNbMV18fHt9LGUudXJsPWFyZ3VtZW50c1swXSk6ZT1lfHx7fSwoZT1vKHRoaXMuZGVmYXVsdHMsZSkpLm1ldGhvZD9lLm1ldGhvZD1lLm1ldGhvZC50b0xvd2VyQ2FzZSgpOnRoaXMuZGVmYXVsdHMubWV0aG9kP2UubWV0aG9kPXRoaXMuZGVmYXVsdHMubWV0aG9kLnRvTG93ZXJDYXNlKCk6ZS5tZXRob2Q9XCJnZXRcIjt2YXIgdCxyPWUudHJhbnNpdGlvbmFsO3ZvaWQgMCE9PXImJnMuYXNzZXJ0T3B0aW9ucyhyLHtzaWxlbnRKU09OUGFyc2luZzpsLnRyYW5zaXRpb25hbChsLmJvb2xlYW4sXCIxLjAuMFwiKSxmb3JjZWRKU09OUGFyc2luZzpsLnRyYW5zaXRpb25hbChsLmJvb2xlYW4sXCIxLjAuMFwiKSxjbGFyaWZ5VGltZW91dEVycm9yOmwudHJhbnNpdGlvbmFsKGwuYm9vbGVhbixcIjEuMC4wXCIpfSwhMSk7dmFyIG49W10saT0hMDt0aGlzLmludGVyY2VwdG9ycy5yZXF1ZXN0LmZvckVhY2goZnVuY3Rpb24odCl7KFwiZnVuY3Rpb25cIiE9dHlwZW9mIHQucnVuV2hlbnx8ITEhPT10LnJ1bldoZW4oZSkpJiYoaT1pJiZ0LnN5bmNocm9ub3VzLG4udW5zaGlmdCh0LmZ1bGZpbGxlZCx0LnJlamVjdGVkKSl9KTt2YXIgdT1bXTtpZih0aGlzLmludGVyY2VwdG9ycy5yZXNwb25zZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3UucHVzaChlLmZ1bGZpbGxlZCxlLnJlamVjdGVkKX0pLCFpKXt2YXIgYz1bYSx2b2lkIDBdO2ZvcihBcnJheS5wcm90b3R5cGUudW5zaGlmdC5hcHBseShjLG4pLGM9Yy5jb25jYXQodSksdD1Qcm9taXNlLnJlc29sdmUoZSk7Yy5sZW5ndGg7KXQ9dC50aGVuKGMuc2hpZnQoKSxjLnNoaWZ0KCkpO3JldHVybiB0fWZvcih2YXIgcD1lO24ubGVuZ3RoOyl7dmFyIGQ9bi5zaGlmdCgpLGg9bi5zaGlmdCgpO3RyeXtwPWQocCl9Y2F0Y2goZSl7aChlKTticmVha319dHJ5e3Q9YShwKX1jYXRjaChlKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoZSl9Zm9yKDt1Lmxlbmd0aDspdD10LnRoZW4odS5zaGlmdCgpLHUuc2hpZnQoKSk7cmV0dXJuIHR9LHUucHJvdG90eXBlLmdldFVyaT1mdW5jdGlvbihlKXtyZXR1cm4gbigoZT1vKHRoaXMuZGVmYXVsdHMsZSkpLnVybCxlLnBhcmFtcyxlLnBhcmFtc1NlcmlhbGl6ZXIpLnJlcGxhY2UoL15cXD8vLFwiXCIpfSxyLmZvckVhY2goW1wiZGVsZXRlXCIsXCJnZXRcIixcImhlYWRcIixcIm9wdGlvbnNcIl0sZnVuY3Rpb24oZSl7dS5wcm90b3R5cGVbZV09ZnVuY3Rpb24odCxyKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KG8ocnx8e30se21ldGhvZDplLHVybDp0LGRhdGE6KHJ8fHt9KS5kYXRhfSkpfX0pLHIuZm9yRWFjaChbXCJwb3N0XCIsXCJwdXRcIixcInBhdGNoXCJdLGZ1bmN0aW9uKGUpe3UucHJvdG90eXBlW2VdPWZ1bmN0aW9uKHQscixuKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KG8obnx8e30se21ldGhvZDplLHVybDp0LGRhdGE6cn0pKX19KSxlLmV4cG9ydHM9dX0pLHBhcmNlbFJlZ2lzdGVyKFwiZ1dHMmhcIixmdW5jdGlvbihlLHQpe3ZhciByPXBhcmNlbFJlcXVpcmUoXCJpRWFxZFwiKTtmdW5jdGlvbiBuKGUpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoZSkucmVwbGFjZSgvJTNBL2dpLFwiOlwiKS5yZXBsYWNlKC8lMjQvZyxcIiRcIikucmVwbGFjZSgvJTJDL2dpLFwiLFwiKS5yZXBsYWNlKC8lMjAvZyxcIitcIikucmVwbGFjZSgvJTVCL2dpLFwiW1wiKS5yZXBsYWNlKC8lNUQvZ2ksXCJdXCIpfWUuZXhwb3J0cz1mdW5jdGlvbihlLHQsaSl7aWYoIXQpcmV0dXJuIGU7aWYoaSlhPWkodCk7ZWxzZSBpZihyLmlzVVJMU2VhcmNoUGFyYW1zKHQpKWE9dC50b1N0cmluZygpO2Vsc2V7dmFyIGEsbz1bXTtyLmZvckVhY2godCxmdW5jdGlvbihlLHQpe251bGwhPWUmJihyLmlzQXJyYXkoZSk/dCs9XCJbXVwiOmU9W2VdLHIuZm9yRWFjaChlLGZ1bmN0aW9uKGUpe3IuaXNEYXRlKGUpP2U9ZS50b0lTT1N0cmluZygpOnIuaXNPYmplY3QoZSkmJihlPUpTT04uc3RyaW5naWZ5KGUpKSxvLnB1c2gobih0KStcIj1cIituKGUpKX0pKX0pLGE9by5qb2luKFwiJlwiKX1pZihhKXt2YXIgcz1lLmluZGV4T2YoXCIjXCIpOy0xIT09cyYmKGU9ZS5zbGljZSgwLHMpKSxlKz0oLTE9PT1lLmluZGV4T2YoXCI/XCIpP1wiP1wiOlwiJlwiKSthfXJldHVybiBlfX0pLHBhcmNlbFJlZ2lzdGVyKFwiNG0zRGFcIixmdW5jdGlvbihlLHQpe3ZhciByPXBhcmNlbFJlcXVpcmUoXCJpRWFxZFwiKTtmdW5jdGlvbiBuKCl7dGhpcy5oYW5kbGVycz1bXX1uLnByb3RvdHlwZS51c2U9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiB0aGlzLmhhbmRsZXJzLnB1c2goe2Z1bGZpbGxlZDplLHJlamVjdGVkOnQsc3luY2hyb25vdXM6ISFyJiZyLnN5bmNocm9ub3VzLHJ1bldoZW46cj9yLnJ1bldoZW46bnVsbH0pLHRoaXMuaGFuZGxlcnMubGVuZ3RoLTF9LG4ucHJvdG90eXBlLmVqZWN0PWZ1bmN0aW9uKGUpe3RoaXMuaGFuZGxlcnNbZV0mJih0aGlzLmhhbmRsZXJzW2VdPW51bGwpfSxuLnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKGUpe3IuZm9yRWFjaCh0aGlzLmhhbmRsZXJzLGZ1bmN0aW9uKHQpe251bGwhPT10JiZlKHQpfSl9LGUuZXhwb3J0cz1ufSkscGFyY2VsUmVnaXN0ZXIoXCJkNHRyeVwiLGZ1bmN0aW9uKGUsdCl7dmFyIHI9cGFyY2VsUmVxdWlyZShcImlFYXFkXCIpLG49cGFyY2VsUmVxdWlyZShcImd1NTlTXCIpLGk9cGFyY2VsUmVxdWlyZShcIjhrR093XCIpLGE9cGFyY2VsUmVxdWlyZShcImJNNHNlXCIpO2Z1bmN0aW9uIG8oZSl7ZS5jYW5jZWxUb2tlbiYmZS5jYW5jZWxUb2tlbi50aHJvd0lmUmVxdWVzdGVkKCl9ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBvKGUpLGUuaGVhZGVycz1lLmhlYWRlcnN8fHt9LGUuZGF0YT1uLmNhbGwoZSxlLmRhdGEsZS5oZWFkZXJzLGUudHJhbnNmb3JtUmVxdWVzdCksZS5oZWFkZXJzPXIubWVyZ2UoZS5oZWFkZXJzLmNvbW1vbnx8e30sZS5oZWFkZXJzW2UubWV0aG9kXXx8e30sZS5oZWFkZXJzKSxyLmZvckVhY2goW1wiZGVsZXRlXCIsXCJnZXRcIixcImhlYWRcIixcInBvc3RcIixcInB1dFwiLFwicGF0Y2hcIixcImNvbW1vblwiXSxmdW5jdGlvbih0KXtkZWxldGUgZS5oZWFkZXJzW3RdfSksKGUuYWRhcHRlcnx8YS5hZGFwdGVyKShlKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBvKGUpLHQuZGF0YT1uLmNhbGwoZSx0LmRhdGEsdC5oZWFkZXJzLGUudHJhbnNmb3JtUmVzcG9uc2UpLHR9LGZ1bmN0aW9uKHQpe3JldHVybiFpKHQpJiYobyhlKSx0JiZ0LnJlc3BvbnNlJiYodC5yZXNwb25zZS5kYXRhPW4uY2FsbChlLHQucmVzcG9uc2UuZGF0YSx0LnJlc3BvbnNlLmhlYWRlcnMsZS50cmFuc2Zvcm1SZXNwb25zZSkpKSxQcm9taXNlLnJlamVjdCh0KX0pfX0pLHBhcmNlbFJlZ2lzdGVyKFwiZ3U1OVNcIixmdW5jdGlvbihlLHQpe3ZhciByPXBhcmNlbFJlcXVpcmUoXCJpRWFxZFwiKSxuPXBhcmNlbFJlcXVpcmUoXCJiTTRzZVwiKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LGkpe3ZhciBhPXRoaXN8fG47cmV0dXJuIHIuZm9yRWFjaChpLGZ1bmN0aW9uKHIpe2U9ci5jYWxsKGEsZSx0KX0pLGV9fSkscGFyY2VsUmVnaXN0ZXIoXCJiTTRzZVwiLGZ1bmN0aW9uKGUsdCl7dmFyIHI9cGFyY2VsUmVxdWlyZShcIjJkS2prXCIpLG49cGFyY2VsUmVxdWlyZShcImlFYXFkXCIpLGk9cGFyY2VsUmVxdWlyZShcIjR4RTJ6XCIpLGE9cGFyY2VsUmVxdWlyZShcIjluYTZ3XCIpLG89e1wiQ29udGVudC1UeXBlXCI6XCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIn07ZnVuY3Rpb24gcyhlLHQpeyFuLmlzVW5kZWZpbmVkKGUpJiZuLmlzVW5kZWZpbmVkKGVbXCJDb250ZW50LVR5cGVcIl0pJiYoZVtcIkNvbnRlbnQtVHlwZVwiXT10KX1mdW5jdGlvbiBsKGUsdCxyKXtpZihuLmlzU3RyaW5nKGUpKXRyeXtyZXR1cm4odHx8SlNPTi5wYXJzZSkoZSksbi50cmltKGUpfWNhdGNoKGUpe2lmKFwiU3ludGF4RXJyb3JcIiE9PWUubmFtZSl0aHJvdyBlfXJldHVybihyfHxKU09OLnN0cmluZ2lmeSkoZSl9dmFyIHU9e3RyYW5zaXRpb25hbDp7c2lsZW50SlNPTlBhcnNpbmc6ITAsZm9yY2VkSlNPTlBhcnNpbmc6ITAsY2xhcmlmeVRpbWVvdXRFcnJvcjohMX0sYWRhcHRlcjpmdW5jdGlvbigpe3ZhciBlO3JldHVyblwidW5kZWZpbmVkXCIhPXR5cGVvZiBYTUxIdHRwUmVxdWVzdD9lPXBhcmNlbFJlcXVpcmUoXCJrSGFYMVwiKTp2b2lkIDAhPT1yJiZcIltvYmplY3QgcHJvY2Vzc11cIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyKSYmKGU9cGFyY2VsUmVxdWlyZShcImtIYVgxXCIpKSxlfSgpLHRyYW5zZm9ybVJlcXVlc3Q6W2Z1bmN0aW9uKGUsdCl7cmV0dXJuKGkodCxcIkFjY2VwdFwiKSxpKHQsXCJDb250ZW50LVR5cGVcIiksbi5pc0Zvcm1EYXRhKGUpfHxuLmlzQXJyYXlCdWZmZXIoZSl8fG4uaXNCdWZmZXIoZSl8fG4uaXNTdHJlYW0oZSl8fG4uaXNGaWxlKGUpfHxuLmlzQmxvYihlKSk/ZTpuLmlzQXJyYXlCdWZmZXJWaWV3KGUpP2UuYnVmZmVyOm4uaXNVUkxTZWFyY2hQYXJhbXMoZSk/KHModCxcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04XCIpLGUudG9TdHJpbmcoKSk6bi5pc09iamVjdChlKXx8dCYmXCJhcHBsaWNhdGlvbi9qc29uXCI9PT10W1wiQ29udGVudC1UeXBlXCJdPyhzKHQsXCJhcHBsaWNhdGlvbi9qc29uXCIpLGwoZSkpOmV9XSx0cmFuc2Zvcm1SZXNwb25zZTpbZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy50cmFuc2l0aW9uYWwscj10JiZ0LnNpbGVudEpTT05QYXJzaW5nLGk9dCYmdC5mb3JjZWRKU09OUGFyc2luZyxvPSFyJiZcImpzb25cIj09PXRoaXMucmVzcG9uc2VUeXBlO2lmKG98fGkmJm4uaXNTdHJpbmcoZSkmJmUubGVuZ3RoKXRyeXtyZXR1cm4gSlNPTi5wYXJzZShlKX1jYXRjaChlKXtpZihvKXtpZihcIlN5bnRheEVycm9yXCI9PT1lLm5hbWUpdGhyb3cgYShlLHRoaXMsXCJFX0pTT05fUEFSU0VcIik7dGhyb3cgZX19cmV0dXJuIGV9XSx0aW1lb3V0OjAseHNyZkNvb2tpZU5hbWU6XCJYU1JGLVRPS0VOXCIseHNyZkhlYWRlck5hbWU6XCJYLVhTUkYtVE9LRU5cIixtYXhDb250ZW50TGVuZ3RoOi0xLG1heEJvZHlMZW5ndGg6LTEsdmFsaWRhdGVTdGF0dXM6ZnVuY3Rpb24oZSl7cmV0dXJuIGU+PTIwMCYmZTwzMDB9fTt1LmhlYWRlcnM9e2NvbW1vbjp7QWNjZXB0OlwiYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpbiwgKi8qXCJ9fSxuLmZvckVhY2goW1wiZGVsZXRlXCIsXCJnZXRcIixcImhlYWRcIl0sZnVuY3Rpb24oZSl7dS5oZWFkZXJzW2VdPXt9fSksbi5mb3JFYWNoKFtcInBvc3RcIixcInB1dFwiLFwicGF0Y2hcIl0sZnVuY3Rpb24oZSl7dS5oZWFkZXJzW2VdPW4ubWVyZ2Uobyl9KSxlLmV4cG9ydHM9dX0pLHBhcmNlbFJlZ2lzdGVyKFwiMmRLamtcIixmdW5jdGlvbihlLHQpe3ZhciByLG4saSxhPWUuZXhwb3J0cz17fTtmdW5jdGlvbiBvKCl7dGhyb3cgRXJyb3IoXCJzZXRUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkXCIpfWZ1bmN0aW9uIHMoKXt0aHJvdyBFcnJvcihcImNsZWFyVGltZW91dCBoYXMgbm90IGJlZW4gZGVmaW5lZFwiKX1mdW5jdGlvbiBsKGUpe2lmKHI9PT1zZXRUaW1lb3V0KXJldHVybiBzZXRUaW1lb3V0KGUsMCk7aWYoKHI9PT1vfHwhcikmJnNldFRpbWVvdXQpcmV0dXJuIHI9c2V0VGltZW91dCxzZXRUaW1lb3V0KGUsMCk7dHJ5e3JldHVybiByKGUsMCl9Y2F0Y2godCl7dHJ5e3JldHVybiByLmNhbGwobnVsbCxlLDApfWNhdGNoKHQpe3JldHVybiByLmNhbGwodGhpcyxlLDApfX19ZnVuY3Rpb24gdShlKXtpZihuPT09Y2xlYXJUaW1lb3V0KXJldHVybiBjbGVhclRpbWVvdXQoZSk7aWYoKG49PT1zfHwhbikmJmNsZWFyVGltZW91dClyZXR1cm4gbj1jbGVhclRpbWVvdXQsY2xlYXJUaW1lb3V0KGUpO3RyeXtyZXR1cm4gbihlKX1jYXRjaCh0KXt0cnl7cmV0dXJuIG4uY2FsbChudWxsLGUpfWNhdGNoKHQpe3JldHVybiBuLmNhbGwodGhpcyxlKX19fSFmdW5jdGlvbigpe3RyeXtyPVwiZnVuY3Rpb25cIj09dHlwZW9mIHNldFRpbWVvdXQ/c2V0VGltZW91dDpvfWNhdGNoKGUpe3I9b310cnl7bj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBjbGVhclRpbWVvdXQ/Y2xlYXJUaW1lb3V0OnN9Y2F0Y2goZSl7bj1zfX0oKTt2YXIgYz1bXSxwPSExLGQ9LTE7ZnVuY3Rpb24gaCgpe3AmJmkmJihwPSExLGkubGVuZ3RoP2M9aS5jb25jYXQoYyk6ZD0tMSxjLmxlbmd0aCYmZigpKX1mdW5jdGlvbiBmKCl7aWYoIXApe3ZhciBlPWwoaCk7cD0hMDtmb3IodmFyIHQ9Yy5sZW5ndGg7dDspe2ZvcihpPWMsYz1bXTsrK2Q8dDspaSYmaVtkXS5ydW4oKTtkPS0xLHQ9Yy5sZW5ndGh9aT1udWxsLHA9ITEsdShlKX19ZnVuY3Rpb24gbShlLHQpe3RoaXMuZnVuPWUsdGhpcy5hcnJheT10fWZ1bmN0aW9uIGcoKXt9YS5uZXh0VGljaz1mdW5jdGlvbihlKXt2YXIgdD1BcnJheShhcmd1bWVudHMubGVuZ3RoLTEpO2lmKGFyZ3VtZW50cy5sZW5ndGg+MSlmb3IodmFyIHI9MTtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKXRbci0xXT1hcmd1bWVudHNbcl07Yy5wdXNoKG5ldyBtKGUsdCkpLDEhPT1jLmxlbmd0aHx8cHx8bChmKX0sbS5wcm90b3R5cGUucnVuPWZ1bmN0aW9uKCl7dGhpcy5mdW4uYXBwbHkobnVsbCx0aGlzLmFycmF5KX0sYS50aXRsZT1cImJyb3dzZXJcIixhLmJyb3dzZXI9ITAsYS5lbnY9e30sYS5hcmd2PVtdLGEudmVyc2lvbj1cIlwiLGEudmVyc2lvbnM9e30sYS5vbj1nLGEuYWRkTGlzdGVuZXI9ZyxhLm9uY2U9ZyxhLm9mZj1nLGEucmVtb3ZlTGlzdGVuZXI9ZyxhLnJlbW92ZUFsbExpc3RlbmVycz1nLGEuZW1pdD1nLGEucHJlcGVuZExpc3RlbmVyPWcsYS5wcmVwZW5kT25jZUxpc3RlbmVyPWcsYS5saXN0ZW5lcnM9ZnVuY3Rpb24oZSl7cmV0dXJuW119LGEuYmluZGluZz1mdW5jdGlvbihlKXt0aHJvdyBFcnJvcihcInByb2Nlc3MuYmluZGluZyBpcyBub3Qgc3VwcG9ydGVkXCIpfSxhLmN3ZD1mdW5jdGlvbigpe3JldHVyblwiL1wifSxhLmNoZGlyPWZ1bmN0aW9uKGUpe3Rocm93IEVycm9yKFwicHJvY2Vzcy5jaGRpciBpcyBub3Qgc3VwcG9ydGVkXCIpfSxhLnVtYXNrPWZ1bmN0aW9uKCl7cmV0dXJuIDB9fSkscGFyY2VsUmVnaXN0ZXIoXCI0eEUyelwiLGZ1bmN0aW9uKGUsdCl7dmFyIHI9cGFyY2VsUmVxdWlyZShcImlFYXFkXCIpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3IuZm9yRWFjaChlLGZ1bmN0aW9uKHIsbil7biE9PXQmJm4udG9VcHBlckNhc2UoKT09PXQudG9VcHBlckNhc2UoKSYmKGVbdF09cixkZWxldGUgZVtuXSl9KX19KSxwYXJjZWxSZWdpc3RlcihcIjluYTZ3XCIsZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LHIsbixpKXtyZXR1cm4gZS5jb25maWc9dCxyJiYoZS5jb2RlPXIpLGUucmVxdWVzdD1uLGUucmVzcG9uc2U9aSxlLmlzQXhpb3NFcnJvcj0hMCxlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybnttZXNzYWdlOnRoaXMubWVzc2FnZSxuYW1lOnRoaXMubmFtZSxkZXNjcmlwdGlvbjp0aGlzLmRlc2NyaXB0aW9uLG51bWJlcjp0aGlzLm51bWJlcixmaWxlTmFtZTp0aGlzLmZpbGVOYW1lLGxpbmVOdW1iZXI6dGhpcy5saW5lTnVtYmVyLGNvbHVtbk51bWJlcjp0aGlzLmNvbHVtbk51bWJlcixzdGFjazp0aGlzLnN0YWNrLGNvbmZpZzp0aGlzLmNvbmZpZyxjb2RlOnRoaXMuY29kZX19LGV9fSkscGFyY2VsUmVnaXN0ZXIoXCJrSGFYMVwiLGZ1bmN0aW9uKGUsdCl7dmFyIHI9cGFyY2VsUmVxdWlyZShcImlFYXFkXCIpLG49cGFyY2VsUmVxdWlyZShcImhBZ0lrXCIpLGk9cGFyY2VsUmVxdWlyZShcImdJRXgyXCIpLGE9cGFyY2VsUmVxdWlyZShcImdXRzJoXCIpLG89cGFyY2VsUmVxdWlyZShcImUzWW85XCIpLHM9cGFyY2VsUmVxdWlyZShcImxvMTlWXCIpLGw9cGFyY2VsUmVxdWlyZShcImVnNnhaXCIpLHU9cGFyY2VsUmVxdWlyZShcImlVcWFqXCIpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24odCxjKXt2YXIgcD1lLmRhdGEsZD1lLmhlYWRlcnMsaD1lLnJlc3BvbnNlVHlwZTtyLmlzRm9ybURhdGEocCkmJmRlbGV0ZSBkW1wiQ29udGVudC1UeXBlXCJdO3ZhciBmPW5ldyBYTUxIdHRwUmVxdWVzdDtlLmF1dGgmJihkLkF1dGhvcml6YXRpb249XCJCYXNpYyBcIitidG9hKChlLmF1dGgudXNlcm5hbWV8fFwiXCIpK1wiOlwiKyhlLmF1dGgucGFzc3dvcmQ/dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KGUuYXV0aC5wYXNzd29yZCkpOlwiXCIpKSk7dmFyIG09byhlLmJhc2VVUkwsZS51cmwpO2Z1bmN0aW9uIGcoKXtpZihmKXt2YXIgcj1cImdldEFsbFJlc3BvbnNlSGVhZGVyc1wiaW4gZj9zKGYuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpOm51bGwsaT1oJiZcInRleHRcIiE9PWgmJlwianNvblwiIT09aD9mLnJlc3BvbnNlOmYucmVzcG9uc2VUZXh0LGE9e2RhdGE6aSxzdGF0dXM6Zi5zdGF0dXMsc3RhdHVzVGV4dDpmLnN0YXR1c1RleHQsaGVhZGVyczpyLGNvbmZpZzplLHJlcXVlc3Q6Zn07bih0LGMsYSksZj1udWxsfX1pZihmLm9wZW4oZS5tZXRob2QudG9VcHBlckNhc2UoKSxhKG0sZS5wYXJhbXMsZS5wYXJhbXNTZXJpYWxpemVyKSwhMCksZi50aW1lb3V0PWUudGltZW91dCxcIm9ubG9hZGVuZFwiaW4gZj9mLm9ubG9hZGVuZD1nOmYub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7ZiYmND09PWYucmVhZHlTdGF0ZSYmKDAhPT1mLnN0YXR1c3x8Zi5yZXNwb25zZVVSTCYmMD09PWYucmVzcG9uc2VVUkwuaW5kZXhPZihcImZpbGU6XCIpKSYmc2V0VGltZW91dChnKX0sZi5vbmFib3J0PWZ1bmN0aW9uKCl7ZiYmKGModShcIlJlcXVlc3QgYWJvcnRlZFwiLGUsXCJFQ09OTkFCT1JURURcIixmKSksZj1udWxsKX0sZi5vbmVycm9yPWZ1bmN0aW9uKCl7Yyh1KFwiTmV0d29yayBFcnJvclwiLGUsbnVsbCxmKSksZj1udWxsfSxmLm9udGltZW91dD1mdW5jdGlvbigpe3ZhciB0PVwidGltZW91dCBvZiBcIitlLnRpbWVvdXQrXCJtcyBleGNlZWRlZFwiO2UudGltZW91dEVycm9yTWVzc2FnZSYmKHQ9ZS50aW1lb3V0RXJyb3JNZXNzYWdlKSxjKHUodCxlLGUudHJhbnNpdGlvbmFsJiZlLnRyYW5zaXRpb25hbC5jbGFyaWZ5VGltZW91dEVycm9yP1wiRVRJTUVET1VUXCI6XCJFQ09OTkFCT1JURURcIixmKSksZj1udWxsfSxyLmlzU3RhbmRhcmRCcm93c2VyRW52KCkpe3ZhciB5PShlLndpdGhDcmVkZW50aWFsc3x8bChtKSkmJmUueHNyZkNvb2tpZU5hbWU/aS5yZWFkKGUueHNyZkNvb2tpZU5hbWUpOnZvaWQgMDt5JiYoZFtlLnhzcmZIZWFkZXJOYW1lXT15KX1cInNldFJlcXVlc3RIZWFkZXJcImluIGYmJnIuZm9yRWFjaChkLGZ1bmN0aW9uKGUsdCl7dm9pZCAwPT09cCYmXCJjb250ZW50LXR5cGVcIj09PXQudG9Mb3dlckNhc2UoKT9kZWxldGUgZFt0XTpmLnNldFJlcXVlc3RIZWFkZXIodCxlKX0pLHIuaXNVbmRlZmluZWQoZS53aXRoQ3JlZGVudGlhbHMpfHwoZi53aXRoQ3JlZGVudGlhbHM9ISFlLndpdGhDcmVkZW50aWFscyksaCYmXCJqc29uXCIhPT1oJiYoZi5yZXNwb25zZVR5cGU9ZS5yZXNwb25zZVR5cGUpLFwiZnVuY3Rpb25cIj09dHlwZW9mIGUub25Eb3dubG9hZFByb2dyZXNzJiZmLmFkZEV2ZW50TGlzdGVuZXIoXCJwcm9ncmVzc1wiLGUub25Eb3dubG9hZFByb2dyZXNzKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBlLm9uVXBsb2FkUHJvZ3Jlc3MmJmYudXBsb2FkJiZmLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKFwicHJvZ3Jlc3NcIixlLm9uVXBsb2FkUHJvZ3Jlc3MpLGUuY2FuY2VsVG9rZW4mJmUuY2FuY2VsVG9rZW4ucHJvbWlzZS50aGVuKGZ1bmN0aW9uKGUpe2YmJihmLmFib3J0KCksYyhlKSxmPW51bGwpfSkscHx8KHA9bnVsbCksZi5zZW5kKHApfSl9fSkscGFyY2VsUmVnaXN0ZXIoXCJoQWdJa1wiLGZ1bmN0aW9uKGUsdCl7dmFyIHI9cGFyY2VsUmVxdWlyZShcImlVcWFqXCIpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7dmFyIGk9bi5jb25maWcudmFsaWRhdGVTdGF0dXM7IW4uc3RhdHVzfHwhaXx8aShuLnN0YXR1cyk/ZShuKTp0KHIoXCJSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlIFwiK24uc3RhdHVzLG4uY29uZmlnLG51bGwsbi5yZXF1ZXN0LG4pKX19KSxwYXJjZWxSZWdpc3RlcihcImlVcWFqXCIsZnVuY3Rpb24oZSx0KXt2YXIgcj1wYXJjZWxSZXF1aXJlKFwiOW5hNndcIik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuLGksYSl7cmV0dXJuIHIoRXJyb3IoZSksdCxuLGksYSl9fSkscGFyY2VsUmVnaXN0ZXIoXCJnSUV4MlwiLGZ1bmN0aW9uKGUsdCl7dmFyIHI9cGFyY2VsUmVxdWlyZShcImlFYXFkXCIpO2UuZXhwb3J0cz1yLmlzU3RhbmRhcmRCcm93c2VyRW52KCk/ZnVuY3Rpb24oKXtyZXR1cm57d3JpdGU6ZnVuY3Rpb24oZSx0LG4saSxhLG8pe3ZhciBzPVtdO3MucHVzaChlK1wiPVwiK2VuY29kZVVSSUNvbXBvbmVudCh0KSksci5pc051bWJlcihuKSYmcy5wdXNoKFwiZXhwaXJlcz1cIituZXcgRGF0ZShuKS50b0dNVFN0cmluZygpKSxyLmlzU3RyaW5nKGkpJiZzLnB1c2goXCJwYXRoPVwiK2kpLHIuaXNTdHJpbmcoYSkmJnMucHVzaChcImRvbWFpbj1cIithKSwhMD09PW8mJnMucHVzaChcInNlY3VyZVwiKSxkb2N1bWVudC5jb29raWU9cy5qb2luKFwiOyBcIil9LHJlYWQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZG9jdW1lbnQuY29va2llLm1hdGNoKFJlZ0V4cChcIihefDtcXFxccyopKFwiK2UrXCIpPShbXjtdKilcIikpO3JldHVybiB0P2RlY29kZVVSSUNvbXBvbmVudCh0WzNdKTpudWxsfSxyZW1vdmU6ZnVuY3Rpb24oZSl7dGhpcy53cml0ZShlLFwiXCIsRGF0ZS5ub3coKS04NjRlNSl9fX0oKTpmdW5jdGlvbigpe3JldHVybnt3cml0ZTpmdW5jdGlvbigpe30scmVhZDpmdW5jdGlvbigpe3JldHVybiBudWxsfSxyZW1vdmU6ZnVuY3Rpb24oKXt9fX0oKX0pLHBhcmNlbFJlZ2lzdGVyKFwiZTNZbzlcIixmdW5jdGlvbihlLHQpe3ZhciByPXBhcmNlbFJlcXVpcmUoXCIycmprMFwiKSxuPXBhcmNlbFJlcXVpcmUoXCI1bkdIQ1wiKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSYmIXIodCk/bihlLHQpOnR9fSkscGFyY2VsUmVnaXN0ZXIoXCIycmprMFwiLGZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybi9eKFthLXpdW2EtelxcZFxcK1xcLVxcLl0qOik/XFwvXFwvL2kudGVzdChlKX19KSxwYXJjZWxSZWdpc3RlcihcIjVuR0hDXCIsZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD9lLnJlcGxhY2UoL1xcLyskLyxcIlwiKStcIi9cIit0LnJlcGxhY2UoL15cXC8rLyxcIlwiKTplfX0pLHBhcmNlbFJlZ2lzdGVyKFwibG8xOVZcIixmdW5jdGlvbihlLHQpe3ZhciByPXBhcmNlbFJlcXVpcmUoXCJpRWFxZFwiKSxuPVtcImFnZVwiLFwiYXV0aG9yaXphdGlvblwiLFwiY29udGVudC1sZW5ndGhcIixcImNvbnRlbnQtdHlwZVwiLFwiZXRhZ1wiLFwiZXhwaXJlc1wiLFwiZnJvbVwiLFwiaG9zdFwiLFwiaWYtbW9kaWZpZWQtc2luY2VcIixcImlmLXVubW9kaWZpZWQtc2luY2VcIixcImxhc3QtbW9kaWZpZWRcIixcImxvY2F0aW9uXCIsXCJtYXgtZm9yd2FyZHNcIixcInByb3h5LWF1dGhvcml6YXRpb25cIixcInJlZmVyZXJcIixcInJldHJ5LWFmdGVyXCIsXCJ1c2VyLWFnZW50XCJdO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdCxpLGEsbz17fTtyZXR1cm4gZSYmci5mb3JFYWNoKGUuc3BsaXQoXCJcXG5cIiksZnVuY3Rpb24oZSl7YT1lLmluZGV4T2YoXCI6XCIpLHQ9ci50cmltKGUuc3Vic3RyKDAsYSkpLnRvTG93ZXJDYXNlKCksaT1yLnRyaW0oZS5zdWJzdHIoYSsxKSksdCYmIShvW3RdJiZuLmluZGV4T2YodCk+PTApJiYoXCJzZXQtY29va2llXCI9PT10P29bdF09KG9bdF0/b1t0XTpbXSkuY29uY2F0KFtpXSk6b1t0XT1vW3RdP29bdF0rXCIsIFwiK2k6aSl9KSxvfX0pLHBhcmNlbFJlZ2lzdGVyKFwiZWc2eFpcIixmdW5jdGlvbihlLHQpe3ZhciByPXBhcmNlbFJlcXVpcmUoXCJpRWFxZFwiKTtlLmV4cG9ydHM9ci5pc1N0YW5kYXJkQnJvd3NlckVudigpP2Z1bmN0aW9uKCl7dmFyIGUsdD0vKG1zaWV8dHJpZGVudCkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7ZnVuY3Rpb24gaShlKXt2YXIgcj1lO3JldHVybiB0JiYobi5zZXRBdHRyaWJ1dGUoXCJocmVmXCIscikscj1uLmhyZWYpLG4uc2V0QXR0cmlidXRlKFwiaHJlZlwiLHIpLHtocmVmOm4uaHJlZixwcm90b2NvbDpuLnByb3RvY29sP24ucHJvdG9jb2wucmVwbGFjZSgvOiQvLFwiXCIpOlwiXCIsaG9zdDpuLmhvc3Qsc2VhcmNoOm4uc2VhcmNoP24uc2VhcmNoLnJlcGxhY2UoL15cXD8vLFwiXCIpOlwiXCIsaGFzaDpuLmhhc2g/bi5oYXNoLnJlcGxhY2UoL14jLyxcIlwiKTpcIlwiLGhvc3RuYW1lOm4uaG9zdG5hbWUscG9ydDpuLnBvcnQscGF0aG5hbWU6XCIvXCI9PT1uLnBhdGhuYW1lLmNoYXJBdCgwKT9uLnBhdGhuYW1lOlwiL1wiK24ucGF0aG5hbWV9fXJldHVybiBlPWkod2luZG93LmxvY2F0aW9uLmhyZWYpLGZ1bmN0aW9uKHQpe3ZhciBuPXIuaXNTdHJpbmcodCk/aSh0KTp0O3JldHVybiBuLnByb3RvY29sPT09ZS5wcm90b2NvbCYmbi5ob3N0PT09ZS5ob3N0fX0oKTpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiEwfX0oKX0pLHBhcmNlbFJlZ2lzdGVyKFwiOGtHT3dcIixmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4hIShlJiZlLl9fQ0FOQ0VMX18pfX0pLHBhcmNlbFJlZ2lzdGVyKFwiNk14NTBcIixmdW5jdGlvbihlLHQpe3ZhciByPXBhcmNlbFJlcXVpcmUoXCJpRWFxZFwiKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt0PXR8fHt9O3ZhciBuPXt9LGk9W1widXJsXCIsXCJtZXRob2RcIixcImRhdGFcIl0sYT1bXCJoZWFkZXJzXCIsXCJhdXRoXCIsXCJwcm94eVwiLFwicGFyYW1zXCJdLG89W1wiYmFzZVVSTFwiLFwidHJhbnNmb3JtUmVxdWVzdFwiLFwidHJhbnNmb3JtUmVzcG9uc2VcIixcInBhcmFtc1NlcmlhbGl6ZXJcIixcInRpbWVvdXRcIixcInRpbWVvdXRNZXNzYWdlXCIsXCJ3aXRoQ3JlZGVudGlhbHNcIixcImFkYXB0ZXJcIixcInJlc3BvbnNlVHlwZVwiLFwieHNyZkNvb2tpZU5hbWVcIixcInhzcmZIZWFkZXJOYW1lXCIsXCJvblVwbG9hZFByb2dyZXNzXCIsXCJvbkRvd25sb2FkUHJvZ3Jlc3NcIixcImRlY29tcHJlc3NcIixcIm1heENvbnRlbnRMZW5ndGhcIixcIm1heEJvZHlMZW5ndGhcIixcIm1heFJlZGlyZWN0c1wiLFwidHJhbnNwb3J0XCIsXCJodHRwQWdlbnRcIixcImh0dHBzQWdlbnRcIixcImNhbmNlbFRva2VuXCIsXCJzb2NrZXRQYXRoXCIsXCJyZXNwb25zZUVuY29kaW5nXCJdLHM9W1widmFsaWRhdGVTdGF0dXNcIl07ZnVuY3Rpb24gbChlLHQpe3JldHVybiByLmlzUGxhaW5PYmplY3QoZSkmJnIuaXNQbGFpbk9iamVjdCh0KT9yLm1lcmdlKGUsdCk6ci5pc1BsYWluT2JqZWN0KHQpP3IubWVyZ2Uoe30sdCk6ci5pc0FycmF5KHQpP3Quc2xpY2UoKTp0fWZ1bmN0aW9uIHUoaSl7ci5pc1VuZGVmaW5lZCh0W2ldKT9yLmlzVW5kZWZpbmVkKGVbaV0pfHwobltpXT1sKHZvaWQgMCxlW2ldKSk6bltpXT1sKGVbaV0sdFtpXSl9ci5mb3JFYWNoKGksZnVuY3Rpb24oZSl7ci5pc1VuZGVmaW5lZCh0W2VdKXx8KG5bZV09bCh2b2lkIDAsdFtlXSkpfSksci5mb3JFYWNoKGEsdSksci5mb3JFYWNoKG8sZnVuY3Rpb24oaSl7ci5pc1VuZGVmaW5lZCh0W2ldKT9yLmlzVW5kZWZpbmVkKGVbaV0pfHwobltpXT1sKHZvaWQgMCxlW2ldKSk6bltpXT1sKHZvaWQgMCx0W2ldKX0pLHIuZm9yRWFjaChzLGZ1bmN0aW9uKHIpe3IgaW4gdD9uW3JdPWwoZVtyXSx0W3JdKTpyIGluIGUmJihuW3JdPWwodm9pZCAwLGVbcl0pKX0pO3ZhciBjPWkuY29uY2F0KGEpLmNvbmNhdChvKS5jb25jYXQocykscD1PYmplY3Qua2V5cyhlKS5jb25jYXQoT2JqZWN0LmtleXModCkpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gLTE9PT1jLmluZGV4T2YoZSl9KTtyZXR1cm4gci5mb3JFYWNoKHAsdSksbn19KSxwYXJjZWxSZWdpc3RlcihcImhpWUFZXCIsZnVuY3Rpb24oZSx0KXt2YXIgcj1wYXJjZWxSZXF1aXJlKFwiYlRBZnRcIiksbj17fTtbXCJvYmplY3RcIixcImJvb2xlYW5cIixcIm51bWJlclwiLFwiZnVuY3Rpb25cIixcInN0cmluZ1wiLFwic3ltYm9sXCJdLmZvckVhY2goZnVuY3Rpb24oZSx0KXtuW2VdPWZ1bmN0aW9uKHIpe3JldHVybiB0eXBlb2Ygcj09PWV8fFwiYVwiKyh0PDE/XCJuIFwiOlwiIFwiKStlfX0pO3ZhciBpPXt9LGE9ci52ZXJzaW9uLnNwbGl0KFwiLlwiKTtmdW5jdGlvbiBvKGUsdCl7Zm9yKHZhciByPXQ/dC5zcGxpdChcIi5cIik6YSxuPWUuc3BsaXQoXCIuXCIpLGk9MDtpPDM7aSsrKXtpZihyW2ldPm5baV0pcmV0dXJuITA7aWYocltpXTxuW2ldKWJyZWFrfXJldHVybiExfW4udHJhbnNpdGlvbmFsPWZ1bmN0aW9uKGUsdCxuKXt2YXIgYT10JiZvKHQpO2Z1bmN0aW9uIHMoZSx0KXtyZXR1cm5cIltBeGlvcyB2XCIrci52ZXJzaW9uK1wiXSBUcmFuc2l0aW9uYWwgb3B0aW9uICdcIitlK1wiJ1wiK3QrKG4/XCIuIFwiK246XCJcIil9cmV0dXJuIGZ1bmN0aW9uKHIsbixvKXtpZighMT09PWUpdGhyb3cgRXJyb3IocyhuLFwiIGhhcyBiZWVuIHJlbW92ZWQgaW4gXCIrdCkpO3JldHVybiBhJiYhaVtuXSYmKGlbbl09ITAsY29uc29sZS53YXJuKHMobixcIiBoYXMgYmVlbiBkZXByZWNhdGVkIHNpbmNlIHZcIit0K1wiIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlXCIpKSksIWV8fGUocixuLG8pfX0sZS5leHBvcnRzPXtpc09sZGVyVmVyc2lvbjpvLGFzc2VydE9wdGlvbnM6ZnVuY3Rpb24oZSx0LHIpe2lmKFwib2JqZWN0XCIhPXR5cGVvZiBlKXRocm93IFR5cGVFcnJvcihcIm9wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3RcIik7Zm9yKHZhciBuPU9iamVjdC5rZXlzKGUpLGk9bi5sZW5ndGg7aS0tID4wOyl7dmFyIGE9bltpXSxvPXRbYV07aWYobyl7dmFyIHM9ZVthXSxsPXZvaWQgMD09PXN8fG8ocyxhLGUpO2lmKCEwIT09bCl0aHJvdyBUeXBlRXJyb3IoXCJvcHRpb24gXCIrYStcIiBtdXN0IGJlIFwiK2wpO2NvbnRpbnVlfWlmKCEwIT09cil0aHJvdyBFcnJvcihcIlVua25vd24gb3B0aW9uIFwiK2EpfX0sdmFsaWRhdG9yczpufX0pLHBhcmNlbFJlZ2lzdGVyKFwiYlRBZnRcIixmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1KU09OLnBhcnNlKCd7XCJfYXJnc1wiOltbXCJheGlvc0AwLjIxLjRcIixcIi9ob21lL3ZpdGFseS9Eb2N1bWVudHMvd29yay9ndWRodWJjbGllbnQvb3ZlcnJpZGVfbnBtL2d1ZGh1YlwiXV0sXCJfZnJvbVwiOlwiYXhpb3NAMC4yMS40XCIsXCJfaWRcIjpcImF4aW9zQDAuMjEuNFwiLFwiX2luQnVuZGxlXCI6ZmFsc2UsXCJfaW50ZWdyaXR5XCI6XCJzaGE1MTItdXQ1dmV3a2l1OGpqR0JkcXBNNDRYeGp1Q2pxOUxBS2VIVm1vVmZIVnp5OGVIZ3h4cThTYkFWUU5vdkRBOG1WaTA1a1AwRWEvbi9VemNTSGNUSlFmTmc9PVwiLFwiX2xvY2F0aW9uXCI6XCIvYXhpb3NcIixcIl9waGFudG9tQ2hpbGRyZW5cIjp7fSxcIl9yZXF1ZXN0ZWRcIjp7XCJ0eXBlXCI6XCJ2ZXJzaW9uXCIsXCJyZWdpc3RyeVwiOnRydWUsXCJyYXdcIjpcImF4aW9zQDAuMjEuNFwiLFwibmFtZVwiOlwiYXhpb3NcIixcImVzY2FwZWROYW1lXCI6XCJheGlvc1wiLFwicmF3U3BlY1wiOlwiMC4yMS40XCIsXCJzYXZlU3BlY1wiOm51bGwsXCJmZXRjaFNwZWNcIjpcIjAuMjEuNFwifSxcIl9yZXF1aXJlZEJ5XCI6W1wiL1wiXSxcIl9yZXNvbHZlZFwiOlwiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvYXhpb3MvLS9heGlvcy0wLjIxLjQudGd6XCIsXCJfc3BlY1wiOlwiMC4yMS40XCIsXCJfd2hlcmVcIjpcIi9ob21lL3ZpdGFseS9Eb2N1bWVudHMvd29yay9ndWRodWJjbGllbnQvb3ZlcnJpZGVfbnBtL2d1ZGh1YlwiLFwiYXV0aG9yXCI6e1wibmFtZVwiOlwiTWF0dCBaYWJyaXNraWVcIn0sXCJicm93c2VyXCI6e1wiLi9saWIvYWRhcHRlcnMvaHR0cC5qc1wiOlwiLi9saWIvYWRhcHRlcnMveGhyLmpzXCJ9LFwiYnVnc1wiOntcInVybFwiOlwiaHR0cHM6Ly9naXRodWIuY29tL2F4aW9zL2F4aW9zL2lzc3Vlc1wifSxcImJ1bmRsZXNpemVcIjpbe1wicGF0aFwiOlwiLi9kaXN0L2F4aW9zLm1pbi5qc1wiLFwidGhyZXNob2xkXCI6XCI1a0JcIn1dLFwiZGVwZW5kZW5jaWVzXCI6e1wiZm9sbG93LXJlZGlyZWN0c1wiOlwiXjEuMTQuMFwifSxcImRlc2NyaXB0aW9uXCI6XCJQcm9taXNlIGJhc2VkIEhUVFAgY2xpZW50IGZvciB0aGUgYnJvd3NlciBhbmQgbm9kZS5qc1wiLFwiZGV2RGVwZW5kZW5jaWVzXCI6e1wiY292ZXJhbGxzXCI6XCJeMy4wLjBcIixcImVzNi1wcm9taXNlXCI6XCJeNC4yLjRcIixcImdydW50XCI6XCJeMS4zLjBcIixcImdydW50LWJhbm5lclwiOlwiXjAuNi4wXCIsXCJncnVudC1jbGlcIjpcIl4xLjIuMFwiLFwiZ3J1bnQtY29udHJpYi1jbGVhblwiOlwiXjEuMS4wXCIsXCJncnVudC1jb250cmliLXdhdGNoXCI6XCJeMS4wLjBcIixcImdydW50LWVzbGludFwiOlwiXjIzLjAuMFwiLFwiZ3J1bnQta2FybWFcIjpcIl40LjAuMFwiLFwiZ3J1bnQtbW9jaGEtdGVzdFwiOlwiXjAuMTMuM1wiLFwiZ3J1bnQtdHNcIjpcIl42LjAuMC1iZXRhLjE5XCIsXCJncnVudC13ZWJwYWNrXCI6XCJeNC4wLjJcIixcImlzdGFuYnVsLWluc3RydW1lbnRlci1sb2FkZXJcIjpcIl4xLjAuMFwiLFwiamFzbWluZS1jb3JlXCI6XCJeMi40LjFcIixcImthcm1hXCI6XCJeNi4zLjJcIixcImthcm1hLWNocm9tZS1sYXVuY2hlclwiOlwiXjMuMS4wXCIsXCJrYXJtYS1maXJlZm94LWxhdW5jaGVyXCI6XCJeMi4xLjBcIixcImthcm1hLWphc21pbmVcIjpcIl4xLjEuMVwiLFwia2FybWEtamFzbWluZS1hamF4XCI6XCJeMC4xLjEzXCIsXCJrYXJtYS1zYWZhcmktbGF1bmNoZXJcIjpcIl4xLjAuMFwiLFwia2FybWEtc2F1Y2UtbGF1bmNoZXJcIjpcIl40LjMuNlwiLFwia2FybWEtc2lub25cIjpcIl4xLjAuNVwiLFwia2FybWEtc291cmNlbWFwLWxvYWRlclwiOlwiXjAuMy44XCIsXCJrYXJtYS13ZWJwYWNrXCI6XCJeNC4wLjJcIixcImxvYWQtZ3J1bnQtdGFza3NcIjpcIl4zLjUuMlwiLFwibWluaW1pc3RcIjpcIl4xLjIuMFwiLFwibW9jaGFcIjpcIl44LjIuMVwiLFwic2lub25cIjpcIl40LjUuMFwiLFwidGVyc2VyLXdlYnBhY2stcGx1Z2luXCI6XCJeNC4yLjNcIixcInR5cGVzY3JpcHRcIjpcIl40LjAuNVwiLFwidXJsLXNlYXJjaC1wYXJhbXNcIjpcIl4wLjEwLjBcIixcIndlYnBhY2tcIjpcIl40LjQ0LjJcIixcIndlYnBhY2stZGV2LXNlcnZlclwiOlwiXjMuMTEuMFwifSxcImhvbWVwYWdlXCI6XCJodHRwczovL2F4aW9zLWh0dHAuY29tXCIsXCJqc2RlbGl2clwiOlwiZGlzdC9heGlvcy5taW4uanNcIixcImtleXdvcmRzXCI6W1wieGhyXCIsXCJodHRwXCIsXCJhamF4XCIsXCJwcm9taXNlXCIsXCJub2RlXCJdLFwibGljZW5zZVwiOlwiTUlUXCIsXCJtYWluXCI6XCJpbmRleC5qc1wiLFwibmFtZVwiOlwiYXhpb3NcIixcInJlcG9zaXRvcnlcIjp7XCJ0eXBlXCI6XCJnaXRcIixcInVybFwiOlwiZ2l0K2h0dHBzOi8vZ2l0aHViLmNvbS9heGlvcy9heGlvcy5naXRcIn0sXCJzY3JpcHRzXCI6e1wiYnVpbGRcIjpcIk5PREVfRU5WPXByb2R1Y3Rpb24gZ3J1bnQgYnVpbGRcIixcImNvdmVyYWxsc1wiOlwiY2F0IGNvdmVyYWdlL2xjb3YuaW5mbyB8IC4vbm9kZV9tb2R1bGVzL2NvdmVyYWxscy9iaW4vY292ZXJhbGxzLmpzXCIsXCJleGFtcGxlc1wiOlwibm9kZSAuL2V4YW1wbGVzL3NlcnZlci5qc1wiLFwiZml4XCI6XCJlc2xpbnQgLS1maXggbGliLyoqLyouanNcIixcInBvc3R2ZXJzaW9uXCI6XCJnaXQgcHVzaCAmJiBnaXQgcHVzaCAtLXRhZ3NcIixcInByZXZlcnNpb25cIjpcIm5wbSB0ZXN0XCIsXCJzdGFydFwiOlwibm9kZSAuL3NhbmRib3gvc2VydmVyLmpzXCIsXCJ0ZXN0XCI6XCJncnVudCB0ZXN0XCIsXCJ2ZXJzaW9uXCI6XCJucG0gcnVuIGJ1aWxkICYmIGdydW50IHZlcnNpb24gJiYgZ2l0IGFkZCAtQSBkaXN0ICYmIGdpdCBhZGQgQ0hBTkdFTE9HLm1kIGJvd2VyLmpzb24gcGFja2FnZS5qc29uXCJ9LFwidHlwaW5nc1wiOlwiLi9pbmRleC5kLnRzXCIsXCJ1bnBrZ1wiOlwiZGlzdC9heGlvcy5taW4uanNcIixcInZlcnNpb25cIjpcIjAuMjEuNFwifScpfSkscGFyY2VsUmVnaXN0ZXIoXCJnMmxpT1wiLGZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gcihlKXt0aGlzLm1lc3NhZ2U9ZX1yLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVyblwiQ2FuY2VsXCIrKHRoaXMubWVzc2FnZT9cIjogXCIrdGhpcy5tZXNzYWdlOlwiXCIpfSxyLnByb3RvdHlwZS5fX0NBTkNFTF9fPSEwLGUuZXhwb3J0cz1yfSkscGFyY2VsUmVnaXN0ZXIoXCIxNFBSblwiLGZ1bmN0aW9uKGUsdCl7dmFyIHI9cGFyY2VsUmVxdWlyZShcImcybGlPXCIpO2Z1bmN0aW9uIG4oZSl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgZSl0aHJvdyBUeXBlRXJyb3IoXCJleGVjdXRvciBtdXN0IGJlIGEgZnVuY3Rpb24uXCIpO3RoaXMucHJvbWlzZT1uZXcgUHJvbWlzZShmdW5jdGlvbihlKXt0PWV9KTt2YXIgdCxuPXRoaXM7ZShmdW5jdGlvbihlKXtuLnJlYXNvbnx8KG4ucmVhc29uPW5ldyByKGUpLHQobi5yZWFzb24pKX0pfW4ucHJvdG90eXBlLnRocm93SWZSZXF1ZXN0ZWQ9ZnVuY3Rpb24oKXtpZih0aGlzLnJlYXNvbil0aHJvdyB0aGlzLnJlYXNvbn0sbi5zb3VyY2U9ZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm57dG9rZW46bmV3IG4oZnVuY3Rpb24odCl7ZT10fSksY2FuY2VsOmV9fSxlLmV4cG9ydHM9bn0pLHBhcmNlbFJlZ2lzdGVyKFwiaTNoQm9cIixmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuYXBwbHkobnVsbCx0KX19fSkscGFyY2VsUmVnaXN0ZXIoXCJkaFlXUFwiLGZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVyblwib2JqZWN0XCI9PXR5cGVvZiBlJiYhMD09PWUuaXNBeGlvc0Vycm9yfX0pLHBhcmNlbFJlZ2lzdGVyKFwia2ZJUWxcIixmdW5jdGlvbihlLHQpe3ZhciByPVwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbCxuPXBhcmNlbFJlcXVpcmUoXCJseUVGY1wiKTtlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZiByJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiByKFwiZm9vXCIpJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sKFwiYmFyXCIpJiZuKCl9fSkscGFyY2VsUmVnaXN0ZXIoXCJseUVGY1wiLGZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgU3ltYm9sfHxcImZ1bmN0aW9uXCIhPXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXJldHVybiExO2lmKFwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3IpcmV0dXJuITA7dmFyIGU9e30sdD1TeW1ib2woXCJ0ZXN0XCIpLHI9T2JqZWN0KHQpO2lmKFwic3RyaW5nXCI9PXR5cGVvZiB0fHxcIltvYmplY3QgU3ltYm9sXVwiIT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfHxcIltvYmplY3QgU3ltYm9sXVwiIT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHIpKXJldHVybiExO3ZhciBuPTQyO2Zvcih2YXIgaSBpbiBlW3RdPW4sZSlyZXR1cm4hMTtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3Qua2V5cyYmMCE9PU9iamVjdC5rZXlzKGUpLmxlbmd0aHx8XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMmJjAhPT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhlKS5sZW5ndGgpcmV0dXJuITE7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtpZigxIT09YS5sZW5ndGh8fGFbMF0hPT10fHwhT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsdCkpcmV0dXJuITE7aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcil7dmFyIG89T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpO2lmKG8udmFsdWUhPT1ufHwhMCE9PW8uZW51bWVyYWJsZSlyZXR1cm4hMX1yZXR1cm4hMH19KSxwYXJjZWxSZWdpc3RlcihcIjVaV0FaXCIsZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiByKHQpe3JldHVybiBlLmV4cG9ydHM9cj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiBlfSxlLmV4cG9ydHMuX19lc01vZHVsZT0hMCxlLmV4cG9ydHMuZGVmYXVsdD1lLmV4cG9ydHMscih0KX1lLmV4cG9ydHM9cixlLmV4cG9ydHMuX19lc01vZHVsZT0hMCxlLmV4cG9ydHMuZGVmYXVsdD1lLmV4cG9ydHN9KSxwYXJjZWxSZWdpc3RlcihcImZncTV5XCIsZnVuY3Rpb24oZSx0KXt2YXIgcj1wYXJjZWxSZXF1aXJlKFwiZjNZd3hcIikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5leHBvcnRzLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLGUuZXhwb3J0cy5kZWZhdWx0PW87dmFyIG49cihwYXJjZWxSZXF1aXJlKFwiYTlWUXdcIikpLGk9cihwYXJjZWxSZXF1aXJlKFwiZ2xSd29cIikpLGE9cihwYXJjZWxSZXF1aXJlKFwiYXlSM0dcIikpO2Z1bmN0aW9uIG8oZSx0KXsoMCxhLmRlZmF1bHQpKDIsYXJndW1lbnRzKTt2YXIgcj0oMCxpLmRlZmF1bHQpKGUpLG89KDAsbi5kZWZhdWx0KSh0KTtyZXR1cm4gaXNOYU4obyk/bmV3IERhdGUoTmFOKToobyYmci5zZXREYXRlKHIuZ2V0RGF0ZSgpK28pLHIpfWUuZXhwb3J0cz1lLmV4cG9ydHMuZGVmYXVsdH0pLHBhcmNlbFJlZ2lzdGVyKFwiZjNZd3hcIixmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19LGUuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLGUuZXhwb3J0cy5kZWZhdWx0PWUuZXhwb3J0c30pLHBhcmNlbFJlZ2lzdGVyKFwiYTlWUXdcIixmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIHIoZSl7aWYobnVsbD09PWV8fCEwPT09ZXx8ITE9PT1lKXJldHVybiBOYU47dmFyIHQ9TnVtYmVyKGUpO3JldHVybiBpc05hTih0KT90OnQ8MD9NYXRoLmNlaWwodCk6TWF0aC5mbG9vcih0KX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZS5leHBvcnRzLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLGUuZXhwb3J0cy5kZWZhdWx0PXIsZS5leHBvcnRzPWUuZXhwb3J0cy5kZWZhdWx0fSkscGFyY2VsUmVnaXN0ZXIoXCJnbFJ3b1wiLGZ1bmN0aW9uKGUsdCl7dmFyIHI9cGFyY2VsUmVxdWlyZShcImYzWXd4XCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUuZXhwb3J0cyxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxlLmV4cG9ydHMuZGVmYXVsdD1hO3ZhciBuPXIocGFyY2VsUmVxdWlyZShcIjVaV0FaXCIpKSxpPXIocGFyY2VsUmVxdWlyZShcImF5UjNHXCIpKTtmdW5jdGlvbiBhKGUpeygwLGkuZGVmYXVsdCkoMSxhcmd1bWVudHMpO3ZhciB0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKTtyZXR1cm4gZSBpbnN0YW5jZW9mIERhdGV8fFwib2JqZWN0XCI9PT0oMCxuLmRlZmF1bHQpKGUpJiZcIltvYmplY3QgRGF0ZV1cIj09PXQ/bmV3IERhdGUoZS5nZXRUaW1lKCkpOlwibnVtYmVyXCI9PXR5cGVvZiBlfHxcIltvYmplY3QgTnVtYmVyXVwiPT09dD9uZXcgRGF0ZShlKTooKFwic3RyaW5nXCI9PXR5cGVvZiBlfHxcIltvYmplY3QgU3RyaW5nXVwiPT09dCkmJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBjb25zb2xlJiYoY29uc29sZS53YXJuKFwiU3RhcnRpbmcgd2l0aCB2Mi4wLjAtYmV0YS4xIGRhdGUtZm5zIGRvZXNuJ3QgYWNjZXB0IHN0cmluZ3MgYXMgZGF0ZSBhcmd1bWVudHMuIFBsZWFzZSB1c2UgYHBhcnNlSVNPYCB0byBwYXJzZSBzdHJpbmdzLiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9ibG9iL21hc3Rlci9kb2NzL3VwZ3JhZGVHdWlkZS5tZCNzdHJpbmctYXJndW1lbnRzXCIpLGNvbnNvbGUud2FybihFcnJvcigpLnN0YWNrKSksbmV3IERhdGUoTmFOKSl9ZS5leHBvcnRzPWUuZXhwb3J0cy5kZWZhdWx0fSkscGFyY2VsUmVnaXN0ZXIoXCJheVIzR1wiLGZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gcihlLHQpe2lmKHQubGVuZ3RoPGUpdGhyb3cgVHlwZUVycm9yKGUrXCIgYXJndW1lbnRcIisoZT4xP1wic1wiOlwiXCIpK1wiIHJlcXVpcmVkLCBidXQgb25seSBcIit0Lmxlbmd0aCtcIiBwcmVzZW50XCIpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLmV4cG9ydHMsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksZS5leHBvcnRzLmRlZmF1bHQ9cixlLmV4cG9ydHM9ZS5leHBvcnRzLmRlZmF1bHR9KSxwYXJjZWxSZWdpc3RlcihcImJ5eU85XCIsZnVuY3Rpb24oZSx0KXt2YXIgcj1wYXJjZWxSZXF1aXJlKFwiZjNZd3hcIikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5leHBvcnRzLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLGUuZXhwb3J0cy5kZWZhdWx0PW87dmFyIG49cihwYXJjZWxSZXF1aXJlKFwiYTlWUXdcIikpLGk9cihwYXJjZWxSZXF1aXJlKFwiZ2xSd29cIikpLGE9cihwYXJjZWxSZXF1aXJlKFwiYXlSM0dcIikpO2Z1bmN0aW9uIG8oZSx0KXsoMCxhLmRlZmF1bHQpKDIsYXJndW1lbnRzKTt2YXIgcj0oMCxpLmRlZmF1bHQpKGUpLG89KDAsbi5kZWZhdWx0KSh0KTtpZihpc05hTihvKSlyZXR1cm4gbmV3IERhdGUoTmFOKTtpZighbylyZXR1cm4gcjt2YXIgcz1yLmdldERhdGUoKSxsPW5ldyBEYXRlKHIuZ2V0VGltZSgpKTtyZXR1cm4obC5zZXRNb250aChyLmdldE1vbnRoKCkrbysxLDApLHM+PWwuZ2V0RGF0ZSgpKT9sOihyLnNldEZ1bGxZZWFyKGwuZ2V0RnVsbFllYXIoKSxsLmdldE1vbnRoKCkscykscil9ZS5leHBvcnRzPWUuZXhwb3J0cy5kZWZhdWx0fSkscGFyY2VsUmVnaXN0ZXIoXCJoTHo2UlwiLGZ1bmN0aW9uKGUsdCl7dmFyIHI9cGFyY2VsUmVxdWlyZShcImYzWXd4XCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUuZXhwb3J0cyxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxlLmV4cG9ydHMuZGVmYXVsdD1zO3ZhciBuPXIocGFyY2VsUmVxdWlyZShcImdsUndvXCIpKSxpPXIocGFyY2VsUmVxdWlyZShcImE5VlF3XCIpKSxhPXIocGFyY2VsUmVxdWlyZShcImF5UjNHXCIpKSxvPXBhcmNlbFJlcXVpcmUoXCJsbXlPaVwiKTtmdW5jdGlvbiBzKGUsdCl7KDAsYS5kZWZhdWx0KSgxLGFyZ3VtZW50cyk7dmFyIHIscyxsLHUsYyxwLGQsaCxmPSgwLG8uZ2V0RGVmYXVsdE9wdGlvbnMpKCksbT0oMCxpLmRlZmF1bHQpKG51bGwhPT0ocj1udWxsIT09KHM9bnVsbCE9PShsPW51bGwhPT0odT1udWxsPT10P3ZvaWQgMDp0LndlZWtTdGFydHNPbikmJnZvaWQgMCE9PXU/dTpudWxsPT10P3ZvaWQgMDpudWxsPT09KGM9dC5sb2NhbGUpfHx2b2lkIDA9PT1jP3ZvaWQgMDpudWxsPT09KHA9Yy5vcHRpb25zKXx8dm9pZCAwPT09cD92b2lkIDA6cC53ZWVrU3RhcnRzT24pJiZ2b2lkIDAhPT1sP2w6Zi53ZWVrU3RhcnRzT24pJiZ2b2lkIDAhPT1zP3M6bnVsbD09PShkPWYubG9jYWxlKXx8dm9pZCAwPT09ZD92b2lkIDA6bnVsbD09PShoPWQub3B0aW9ucyl8fHZvaWQgMD09PWg/dm9pZCAwOmgud2Vla1N0YXJ0c09uKSYmdm9pZCAwIT09cj9yOjApO2lmKCEobT49MCYmbTw9NikpdGhyb3cgUmFuZ2VFcnJvcihcIndlZWtTdGFydHNPbiBtdXN0IGJlIGJldHdlZW4gMCBhbmQgNiBpbmNsdXNpdmVseVwiKTt2YXIgZz0oMCxuLmRlZmF1bHQpKGUpLHk9Zy5nZXREYXkoKSxfPTcqKHk8bSkreS1tO3JldHVybiBnLnNldERhdGUoZy5nZXREYXRlKCktXyksZy5zZXRIb3VycygwLDAsMCwwKSxnfWUuZXhwb3J0cz1lLmV4cG9ydHMuZGVmYXVsdH0pLHBhcmNlbFJlZ2lzdGVyKFwibG15T2lcIixmdW5jdGlvbihlLHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLmV4cG9ydHMsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksZS5leHBvcnRzLmdldERlZmF1bHRPcHRpb25zPW4sZS5leHBvcnRzLnNldERlZmF1bHRPcHRpb25zPWk7dmFyIHI9e307ZnVuY3Rpb24gbigpe3JldHVybiByfWZ1bmN0aW9uIGkoZSl7cj1lfX0pLHBhcmNlbFJlZ2lzdGVyKFwia21jQVRcIixmdW5jdGlvbihtb2R1bGUsZXhwb3J0cyl7dmFyICRha1hLND1wYXJjZWxSZXF1aXJlKFwiYWtYSzRcIiksJDV4b3pCPXBhcmNlbFJlcXVpcmUoXCI1eG96QlwiKTtsZXQgJHE9e3doZW46ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBQcm9taXNlKHQ9Pnt0KGUpfSl9fSxmYWN0b3J5UmV0dXJucz17fTtjbGFzcyBBbmd1bGFyQ2xhc3N7bW9kdWxlKCl7cmV0dXJuIGFuZ3VsYXJ9ZGlyZWN0aXZlKCl7cmV0dXJuIGFuZ3VsYXJ9ZmFjdG9yeShlLHQpe3RyeXtcIm9iamVjdFwiPT10eXBlb2YgdD9mYWN0b3J5UmV0dXJuc1tlXT10W3QubGVuZ3RoLTFdKCRxKTpmYWN0b3J5UmV0dXJuc1tlXT10KCRxKX1jYXRjaCh0KXtjb25zb2xlLmxvZyhcIkVycnJvciBpbiBkYXRhIHR5cGU6IFwiLGUpLGNvbnNvbGUubG9nKHQpfXJldHVybiBhbmd1bGFyfXNlcnZpY2UoKXtyZXR1cm4gYW5ndWxhcn1ydW4oKXtyZXR1cm4gYW5ndWxhcn1maWx0ZXIoKXtyZXR1cm4gYW5ndWxhcn1jb250cm9sbGVyKCl7cmV0dXJuIGFuZ3VsYXJ9dmFsdWUoKXtyZXR1cm4gYW5ndWxhcn1lbGVtZW50KCl7cmV0dXJuIGFuZ3VsYXJ9aW5qZWN0b3IoKXtyZXR1cm4gYW5ndWxhcn1pbnZva2UoKXtyZXR1cm4gYW5ndWxhcn19bGV0IGFuZ3VsYXI9bmV3IEFuZ3VsYXJDbGFzczthc3luYyBmdW5jdGlvbiBjcmVhdGVBbmd1bGFyTW9kdWxlSW5zdGFuY2UoZ3VkaHViLG1vZHVsZV9pZCxtb2R1bGVfdXJsLGFuZ3VsYXJJbmplY3Rvcixub2RlV2luZG93KXt0cnl7bGV0IGFuZ3VsYXJNb2R1bGUsaW1wb3J0ZWRDbGFzcztpZigkNXhvekIuSVNfQlJPV1NFUl9NQUlOX1RIUkVBRCl7aWYod2luZG93LmFuZ3VsYXIpe2FuZ3VsYXJJbmplY3Rvci5oYXMobW9kdWxlX2lkKXx8YXdhaXQgYW5ndWxhckluamVjdG9yLmdldChcIiRvY0xhenlMb2FkXCIpLmxvYWQobW9kdWxlX3VybCksYW5ndWxhck1vZHVsZT1hd2FpdCBhbmd1bGFySW5qZWN0b3IuZ2V0KG1vZHVsZV9pZCk7bGV0IG1vZHVsZT1hd2FpdCAkcGFyY2VsJGludGVyb3BEZWZhdWx0KCRha1hLNCkuZ2V0KG1vZHVsZV91cmwpO21vZHVsZT1tb2R1bGUuZGF0YTt0cnl7ZXZhbChtb2R1bGUpfWNhdGNoKGVycm9yKXtjb25zb2xlLmVycm9yKGBFUlJPUiBXSElMRSBFVkFMKCkgSU4gR0hDT05TVFJVQ1RPUi4gTU9EVUxFIElEOiAke21vZHVsZV9pZH1gKSxjb25zb2xlLmxvZyhlcnJvcil9aW1wb3J0ZWRDbGFzcz1mYWN0b3J5UmV0dXJuc1ttb2R1bGVfaWRdfWVsc2V7bGV0IG1vZHVsZT1hd2FpdCAkcGFyY2VsJGludGVyb3BEZWZhdWx0KCRha1hLNCkuZ2V0KG1vZHVsZV91cmwpO21vZHVsZT1tb2R1bGUuZGF0YTt0cnl7ZXZhbChtb2R1bGUpfWNhdGNoKGVycil7Y29uc29sZS5sb2coYEVycm9yIHdoaWxlIGltcG9ydGluZyBtb2R1bGU6ICR7bW9kdWxlX2lkfWApLGNvbnNvbGUubG9nKGVycil9aW1wb3J0ZWRDbGFzcz1mYWN0b3J5UmV0dXJuc1ttb2R1bGVfaWRdfX1lbHNle2xldCBwcm94eT1uZXcgUHJveHkobm9kZVdpbmRvdyx7Z2V0OihlLHQpPT57bGV0IHI9ZVt0XTtpZihcInN5bWJvbFwiIT10eXBlb2YgcilyZXR1cm4gcn0sc2V0OihlLHQscik9Plwic3ltYm9sXCIhPXR5cGVvZiByJiYoZVt0XT1yLCRwYXJjZWwkZ2xvYmFsW3RdPXIsITApfSk7JHBhcmNlbCRnbG9iYWwuaGFzT3duUHJvcGVydHkoXCJ3aW5kb3dcIil8fCgkcGFyY2VsJGdsb2JhbC53aW5kb3c9cHJveHksJHBhcmNlbCRnbG9iYWwuZG9jdW1lbnQ9bm9kZVdpbmRvdy5kb2N1bWVudCwkcGFyY2VsJGdsb2JhbC5FbGVtZW50PW5vZGVXaW5kb3cuRWxlbWVudCwkcGFyY2VsJGdsb2JhbC5DaGFyYWN0ZXJEYXRhPW5vZGVXaW5kb3cuQ2hhcmFjdGVyRGF0YSwkcGFyY2VsJGdsb2JhbC50aGlzPXByb3h5LCRwYXJjZWwkZ2xvYmFsLnNlbGY9cHJveHksJHBhcmNlbCRnbG9iYWwuQmxvYj1ub2RlV2luZG93LkJsb2IsJHBhcmNlbCRnbG9iYWwuTm9kZT1ub2RlV2luZG93Lk5vZGUsJHBhcmNlbCRnbG9iYWwubmF2aWdhdG9yPW5vZGVXaW5kb3cubmF2aWdhdG9yLCRwYXJjZWwkZ2xvYmFsLkhUTUxFbGVtZW50PW5vZGVXaW5kb3cuSFRNTEVsZW1lbnQsJHBhcmNlbCRnbG9iYWwuWE1MSHR0cFJlcXVlc3Q9bm9kZVdpbmRvdy5YTUxIdHRwUmVxdWVzdCwkcGFyY2VsJGdsb2JhbC5XZWJTb2NrZXQ9bm9kZVdpbmRvdy5XZWJTb2NrZXQsJHBhcmNlbCRnbG9iYWwuY3J5cHRvPW5vZGVXaW5kb3cuY3J5cHRvLCRwYXJjZWwkZ2xvYmFsLkRPTVBhcnNlcj1ub2RlV2luZG93LkRPTVBhcnNlciwkcGFyY2VsJGdsb2JhbC5kb2N1bWVudC5xdWVyeUNvbW1hbmRTdXBwb3J0ZWQ9ZT0+ITEsJHBhcmNlbCRnbG9iYWwuYW5ndWxhcj1hbmd1bGFyKTt0cnl7bGV0IG1vZHVsZTtsZXQgY29kZT0oYXdhaXQgJHBhcmNlbCRpbnRlcm9wRGVmYXVsdCgkYWtYSzQpLmdldChtb2R1bGVfdXJsKSkuZGF0YSxlbmNvZGVkQ29kZT1lbmNvZGVVUklDb21wb25lbnQoY29kZSk7ZW5jb2RlZENvZGU9XCJkYXRhOnRleHQvamF2YXNjcmlwdDtjaGFyc2V0PXV0Zi04LFwiK2VuY29kZWRDb2RlO3RyeXttb2R1bGU9YXdhaXQgaW1wb3J0KGVuY29kZWRDb2RlKX1jYXRjaChlcnIpe2NvbnNvbGUubG9nKGBFcnJvciB3aGlsZSBpbXBvcnRpbmcgbW9kdWxlOiAke21vZHVsZV9pZH1gKSxjb25zb2xlLmxvZyhlcnIpfW1vZHVsZSYmbW9kdWxlLmRlZmF1bHQ/aW1wb3J0ZWRDbGFzcz1uZXcgbW9kdWxlLmRlZmF1bHQ6Y29uc29sZS5lcnJvcihgTW9kdWxlICR7bW9kdWxlX2lkfSBkaWRuJ3QgZXhwb3J0IGEgZGVmYXVsdCBjbGFzc2ApfWNhdGNoKGVycm9yKXtjb25zb2xlLmVycm9yKFwiRXJyb3IgZmV0Y2hpbmcgbW9kdWxlIGNvZGU6XCIsZXJyb3IpfX1sZXQgcmVzdWx0PXt0eXBlOm1vZHVsZV9pZCxnZXRUZW1wbGF0ZTpmdW5jdGlvbihlLHQscixuLGksYSl7bGV0IG89XCJmYWxzZVwiIT09cjtyZXR1cm4gaW1wb3J0ZWRDbGFzcy5nZXRUZW1wbGF0ZShlLHQsbyxuLGksYSl9LGdldERlZmF1bHRWYWx1ZTpmdW5jdGlvbihlLHQscixuKXtyZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgaT0+e2xldCBhPWltcG9ydGVkQ2xhc3MuZ2V0RGVmYXVsdFZhbHVlO2lmKGEpe2xldCBvPWF3YWl0IGEoZSx0LHIsbik7aShvKX1lbHNlIGkobnVsbCl9KX0sZ2V0U2V0dGluZ3M6ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBpbXBvcnRlZENsYXNzLmdldFNldHRpbmdzKGUsdCxyKX0sZmlsdGVyOntnZXRTZWFyY2hPcHRpb25zOmZ1bmN0aW9uKGUpe2xldCB0PWltcG9ydGVkQ2xhc3M7cmV0dXJuIHQuZmlsdGVyJiZ0LmZpbHRlci5nZXRTZWFyY2hPcHRpb25zP2ltcG9ydGVkQ2xhc3MuZmlsdGVyLmdldFNlYXJjaE9wdGlvbnMoZSl8fG51bGw6W119LGdldERyb3Bkb3duVmFsdWVzOmZ1bmN0aW9uKCl7bGV0IGU9aW1wb3J0ZWRDbGFzcztyZXR1cm4gZS5maWx0ZXImJmUuZmlsdGVyLmdldERyb3Bkb3duVmFsdWVzP2UuZmlsdGVyLmdldERyb3Bkb3duVmFsdWVzKCl8fG51bGw6W119fSxnZXRJbnRlcnByZXRhdGlvbjpmdW5jdGlvbihlLHQscixuLGksYSl7cmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIG89PntsZXQgcz1pbXBvcnRlZENsYXNzO3RyeXtsZXQgbD1hd2FpdCBzLmdldEludGVycHJldGF0aW9uKGd1ZGh1YixlLGEsaSxuLHIpLHU9bC5maW5kKGU9PmUuaWQ9PXQpfHxsLmZpbmQoZT0+XCJkZWZhdWx0XCI9PWUuaWQpLGM9YXdhaXQgdS5jb250ZW50KCk7byh7aHRtbDpjfSl9Y2F0Y2goZSl7Y29uc29sZS5sb2coYEVSUk9SIElOICR7bW9kdWxlX2lkfWAsZSksbyh7aHRtbDpcIjxzcGFuPm5vIGludGVycHJldGF0aW9uPC9zcGFuPlwifSl9fSl9LGdldEludGVycHJldGF0aW9uc0xpc3Q6ZnVuY3Rpb24oZSx0LHIsbil7cmV0dXJuIGltcG9ydGVkQ2xhc3MuZ2V0SW50ZXJwcmV0YXRpb24oZSx0LHIsbil9LGdldEludGVycHJldGF0ZWRWYWx1ZTpmdW5jdGlvbihlLHQscixuKXtyZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgaT0+e2xldCBhPWltcG9ydGVkQ2xhc3MuZ2V0SW50ZXJwcmV0YXRlZFZhbHVlO2lmKGEpe2xldCBvPWF3YWl0IGEoZSx0LHIsbik7aShvKX1lbHNlIGkoZSl9KX0sb25NZXNzYWdlOmZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgbj0+e2xldCBpPWltcG9ydGVkQ2xhc3Mub25NZXNzYWdlO2lmKGkpe2xldCBhPWF3YWl0IGkoZSx0LHIpO24oYSl9bihudWxsKX0pfX07cmV0dXJuICQ1eG96Qi5JU19CUk9XU0VSX01BSU5fVEhSRUFEJiYocmVzdWx0LmV4dGVuZENvbnRyb2xsZXI9ZnVuY3Rpb24oZSl7YW5ndWxhck1vZHVsZS5nZXRBY3Rpb25TY29wZShlKX0scmVzdWx0LnJ1bkFjdGlvbj1mdW5jdGlvbihlKXt0cnl7YW5ndWxhck1vZHVsZS5ydW5BY3Rpb24oZSl9Y2F0Y2goZSl7fX0scmVzdWx0LmdldFdpbmRvd1Njb3BlPWZ1bmN0aW9uKGUpe3JldHVybiBhbmd1bGFyTW9kdWxlLmdldFdpbmRvd1Njb3BlKGUpfSxyZXN1bHQuZ2V0V2luZG93SFRNTD1mdW5jdGlvbihlKXtyZXR1cm4gYW5ndWxhck1vZHVsZS5nZXRXaW5kb3dIVE1MKGUpfSkscmVzdWx0fWNhdGNoKGVycil7Y29uc29sZS5sb2coZXJyKSxjb25zb2xlLmxvZyhgRmFpbGVkIGluIGNyZWF0ZUFuZ3VsYXJNb2R1bGVJbnN0YW5jZSAoZ2hjb25zdHJ1Y3RvcikuIE1vZHVsZSBpZDogJHttb2R1bGVfaWR9LmApfX19KSxwYXJjZWxSZWdpc3RlcihcImFrWEs0XCIsZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9cGFyY2VsUmVxdWlyZShcIjF1ZkFCXCIpfSkscGFyY2VsUmVnaXN0ZXIoXCI1eG96QlwiLGZ1bmN0aW9uKGUsdCl7JHBhcmNlbCRleHBvcnQoZS5leHBvcnRzLFwiSVNfQlJPV1NFUl9NQUlOX1RIUkVBRFwiLCgpPT5uKSwkcGFyY2VsJGV4cG9ydChlLmV4cG9ydHMsXCJJU19CUk9XU0VSXCIsKCk9PmEpO3ZhciByPXBhcmNlbFJlcXVpcmUoXCIyZEtqa1wiKTtsZXQgbj1cInVuZGVmaW5lZFwiIT10eXBlb2Ygd2luZG93JiZcInVuZGVmaW5lZFwiIT10eXBlb2YgZG9jdW1lbnQsaT1cIm9iamVjdFwiPT10eXBlb2Ygc2VsZiYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlLGE9bnx8aTt2b2lkIDAhPT1yJiZudWxsIT1yLnZlcnNpb25zJiZyLnZlcnNpb25zLm5vZGV9KTt2YXIgJDV4b3pCPXBhcmNlbFJlcXVpcmUoXCI1eG96QlwiKTtsZXQgJDcyM2YzYjg2MDU1M2I1MGIkZXhwb3J0JGNhNzZiYjAzNjU3YjlkMGQ9XCJodHRwczovL2d1ZGh1Yi5jb20vR3VkSHViX1Rlc3RcIiwkNzIzZjNiODYwNTUzYjUwYiRleHBvcnQkNmQyZGI3OWM0Mzg3OTI3Nz1cIndzczovL2d1ZGh1Yi5jb20vR3VkSHViL3dzL2FwcC9cIiwkNzIzZjNiODYwNTUzYjUwYiRleHBvcnQkODU3NzZhODNjMWFhMGEzNT1cImh0dHBzOi8vZ3VkaHViLmNvbS9hcGkvc2VydmljZXMvcHJvZFwiLCQ3MjNmM2I4NjA1NTNiNTBiJGV4cG9ydCQ3MWI0NTYzNDA4OTI5MDljPVwiYnVpbGQvbGF0ZXN0L2FzeW5jX21vZHVsZXNfbm9kZS9cIiwkNzIzZjNiODYwNTUzYjUwYiRleHBvcnQkZTlhZmQxNDczZGU3YTYxNT1cImJ1aWxkL2xhdGVzdC9hdXRvbWF0aW9uX21vZHVsZXMvXCIsJDcyM2YzYjg2MDU1M2I1MGIkZXhwb3J0JGJiNThkNDgxODZiNWQ0YzA9XCJodHRwczovL2d1ZGh1Yi5jb21cIiwkNzIzZjNiODYwNTUzYjUwYiRleHBvcnQkY2I5YzJjYjMyZTA3YWEyMz0hMCwkNzIzZjNiODYwNTUzYjUwYiRleHBvcnQkZTE0OTc4MGI1NTljODdlOD0hMSwkNzIzZjNiODYwNTUzYjUwYiRleHBvcnQkNjY2NzY0YWEzNzI1YjcwZj0hMDskNXhvekIuSVNfQlJPV1NFUnx8KCQ3MjNmM2I4NjA1NTNiNTBiJGV4cG9ydCQ2NjY3NjRhYTM3MjViNzBmPSExKTtsZXQgJDcyM2YzYjg2MDU1M2I1MGIkZXhwb3J0JDI0MzNkYTdiZDNjYzdhZjc9OWUzO3ZhciAkNXhvekI9cGFyY2VsUmVxdWlyZShcIjV4b3pCXCIpO2NsYXNzICRmNjY1YTJlOGU5YzExMzY5JGV4cG9ydCQ3ZjJmNjEwNTRkNTExOWFje31jbGFzcyAkM2QxMGNiODJiZTA4NDg2YiRleHBvcnQkZmQ2N2FlYzYzMDE0YjljNSBleHRlbmRzICRmNjY1YTJlOGU5YzExMzY5JGV4cG9ydCQ3ZjJmNjEwNTRkNTExOWFje2NvbnN0cnVjdG9yKGUsdCxyKXtzdXBlcigpLHRoaXMuY2h1bmtEYXRhU2VydmljZT1uZXcgJGI0MDI5NTRlMjBkZjM4MDAkZXhwb3J0JDJkYjI0NzdhODdlMDA3OTkoZSwkYjQwMjk1NGUyMGRmMzgwMCRleHBvcnQkZTRjN2UyYmY3NjA5MjQwZixyKSx0aGlzLmd1ZGh1Yj1yfWlzV2l0aENhY2hlKCl7cmV0dXJuITF9YXN5bmMgcHJvY2Vzc1JlcXVlc3RlZEFwcChlLHQpe2lmKCF0aGlzLmlzV2l0aENhY2hlKCkpe2xldCByPWF3YWl0IHRoaXMuY2h1bmtEYXRhU2VydmljZS5nZXRNZXJnZWRDaHVua0ZvcklETGlzdChlLHQuY2h1bmtzKTtyJiYodC5pdGVtc19saXN0PWF3YWl0IHRoaXMuZ3VkaHViLnV0aWwubWVyZ2VDaHVua3MoW3IsdF0pKX1yZXR1cm4gdH19Y2xhc3MgJGVmOGZlZTNkMDY2NTMxNDgkZXhwb3J0JGNjNTE2ZDhkYzgwZjNiOGV7Y29uc3RydWN0b3IoZSl7dGhpcy5yZXE9ZX1hc3luYyBnZXRBcHAoZSl7cmV0dXJuIHRoaXMucmVxLmdldCh7dXJsOlwiL2FwaS9hcHAvZ2V0XCIscGFyYW1zOnthcHBfaWQ6ZX19KX19bGV0ICQ5ODI4MGQ0YmI3OWUxYjc5JGV4cG9ydCRkMzUxOWNmN2JhYmRmZWVmPShlLC4uLnQpPT57Zm9yKGxldCByIG9mIHQpaWYocil7Zm9yKGxldCB0IG9mIE9iamVjdC5rZXlzKHIpKWlmKCEodCBpbiBlKSl7bGV0IG49T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLHQpO24uZW51bWVyYWJsZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxuKX19fSwkOTgyODBkNGJiNzllMWI3OSRleHBvcnQkMzRhYzVmMjk4MTM0NTMzMj0oZSwuLi50KT0+e2ZvcihsZXQgciBvZiB0KWlmKHIpZm9yKGxldCB0IG9mIE9iamVjdC5rZXlzKHIpKXtsZXQgbj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsdCk7bi5lbnVtZXJhYmxlJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LG4pfX0sJDk4MjgwZDRiYjc5ZTFiNzkkZXhwb3J0JDEwNzIxYjUwNDg0YWU4N2U9KGUsLi4udCk9Pntmb3IobGV0IHIgb2YgdClpZihyKWZvcihsZXQgdCBvZiBPYmplY3Qua2V5cyhyKSl7bGV0IG49T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLHQpO24uZW51bWVyYWJsZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxuKX19O2NsYXNzICRlOTJlYzI4MjYyYzk5ODlhJGV4cG9ydCQ1MDI2NTVkOGFmOGE0ZGFie31jbGFzcyAkNTc3ODVhMjQzODYxNGI2YyRleHBvcnQkMTE2ZWQzMTRiYjFjNDIwZSBleHRlbmRzICQzZDEwY2I4MmJlMDg0ODZiJGV4cG9ydCRmZDY3YWVjNjMwMTRiOWM1e2NvbnN0cnVjdG9yKGUsdCxyKXtzdXBlcihlLHQsciksdGhpcy5hcHBBcGk9bmV3ICRlZjhmZWUzZDA2NjUzMTQ4JGV4cG9ydCRjYzUxNmQ4ZGM4MGYzYjhlKGUpLCQ5ODI4MGQ0YmI3OWUxYjc5JGV4cG9ydCQzNGFjNWYyOTgxMzQ1MzMyKHRoaXMsbmV3ICRlOTJlYzI4MjYyYzk5ODlhJGV4cG9ydCQ1MDI2NTVkOGFmOGE0ZGFiKHQpKX1hc3luYyBnZXRBcHAoZSl7bGV0IHQ9YXdhaXQgdGhpcy5hcHBBcGkuZ2V0QXBwKGUpO3JldHVybiB0aGlzLnByb2Nlc3NSZXF1ZXN0ZWRBcHAoZSx0KX1hc3luYyBnZXRBcHBXaXRob3V0UHJvY2Vzc2luZyhlKXtyZXR1cm4gdGhpcy5hcHBBcGkuZ2V0QXBwKGUpfWFzeW5jIHB1dEFwcChlLHQpe31zdGF0aWNbU3ltYm9sLmhhc0luc3RhbmNlXShlKXt0cnl7aWYoZSBpbnN0YW5jZW9mICQ1Nzc4NWEyNDM4NjE0YjZjJGV4cG9ydCQxMTZlZDMxNGJiMWM0MjBlfHxlIGluc3RhbmNlb2YgJGU5MmVjMjgyNjJjOTk4OWEkZXhwb3J0JDUwMjY1NWQ4YWY4YTRkYWIpcmV0dXJuITA7cmV0dXJuITF9Y2F0Y2goZSl7cmV0dXJuITF9fX1jbGFzcyAkOGMwZGNjNDJiMDc2Yjc1ZCRleHBvcnQkMmRiMjQ3N2E4N2UwMDc5OSBleHRlbmRzICRmNjY1YTJlOGU5YzExMzY5JGV4cG9ydCQ3ZjJmNjEwNTRkNTExOWFje2dldE1lcmdlZENodW5rRm9ySURMaXN0KGUpe31pc1dpdGhDYWNoZSgpe3JldHVybiExfX1jbGFzcyAkNDAxNGQyMTJmYzQwOWE0ZiRleHBvcnQkNzM3OWJlMTAzOTkwZTMzYntjb25zdHJ1Y3RvcihlKXt0aGlzLnJlcT1lfWFzeW5jIGdldENodW5rKGUsdCl7cmV0dXJuIHRoaXMucmVxLmF4aW9zUmVxdWVzdCh7dXJsOmAke3RoaXMucmVxLnJvb3R9L2FwaS9nZXQtaXRlbXMtY2h1bmsvJHtlfS8ke3R9YCxtZXRob2Q6XCJHRVRcIn0pfWFzeW5jIGdldExhc3RDaHVuayhlKXtyZXR1cm4gdGhpcy5yZXEuYXhpb3NSZXF1ZXN0KHt1cmw6YCR7dGhpcy5yZXEucm9vdH0vYXBpL2dldC1sYXN0LWl0ZW1zLWNodW5rLyR7ZX1gLG1ldGhvZDpcIkdFVFwifSl9fWNsYXNzICQ1MzM3MWFiZDNhYTRjYmQ3JGV4cG9ydCRhYTViZjE0YmUwZDBkZTgwIGV4dGVuZHMgJDhjMGRjYzQyYjA3NmI3NWQkZXhwb3J0JDJkYjI0NzdhODdlMDA3OTl7Y29uc3RydWN0b3IoZSx0KXtzdXBlcigpLHRoaXMuY2h1bmtBcGk9bmV3ICQ0MDE0ZDIxMmZjNDA5YTRmJGV4cG9ydCQ3Mzc5YmUxMDM5OTBlMzNiKGUpLCQ5ODI4MGQ0YmI3OWUxYjc5JGV4cG9ydCQzNGFjNWYyOTgxMzQ1MzMyKHRoaXMsbmV3ICRlOTJlYzI4MjYyYzk5ODlhJGV4cG9ydCQ1MDI2NTVkOGFmOGE0ZGFiKHQpKX1hc3luYyBnZXRDaHVuayhlLHQpe3JldHVybiB0aGlzLmNodW5rQXBpLmdldENodW5rKGUsdCl9YXN5bmMgZ2V0Q2h1bmtzRm9ySWQoZSl7cmV0dXJuW119Z2V0Q2FjaGVkTWVyZ2VkQ2h1bmsoZSx0KXt9Z2V0TWVyZ2VkQ2h1bmtGb3JJRExpc3QoZSx0KXt9cHV0Q2h1bmsoKXt9c3RhdGljW1N5bWJvbC5oYXNJbnN0YW5jZV0oZSl7dHJ5e2lmKGUgaW5zdGFuY2VvZiAkNTMzNzFhYmQzYWE0Y2JkNyRleHBvcnQkYWE1YmYxNGJlMGQwZGU4MHx8ZSBpbnN0YW5jZW9mICRlOTJlYzI4MjYyYzk5ODlhJGV4cG9ydCQ1MDI2NTVkOGFmOGE0ZGFiKXJldHVybiEwO3JldHVybiExfWNhdGNoKGUpe3JldHVybiExfX19bGV0ICRmOTJjZGQzMGE4MmZhMzExJGV4cG9ydCQ5NGQwMGRlNzg0Mzg1MGNhPXtzdG9yZTpcImFwcHNcIn0sJDdiMTU1N2IyM2RjZjE3NzEkZXhwb3J0JGYyMDJhMzFlNDE0NzcwN2U9e3N0b3JlOlwiY2h1bmtzXCJ9LCQ3Y2Y4ZWQ4OTVmZWZlY2ZiJGV4cG9ydCQ3OGJiMjk0ZGQ4YjQ1OTUyPVwiZ3VkaHViXCIsJGQ4MTIyMDk5MDNjMDI4OGEkZXhwb3J0JDQwNWNmNjFkNDRiMmQ3NWU9e3N0b3JlOlwiY2h1bmtzTWVyZ2VDYWNoZVwifTtjbGFzcyAkNzcxYmE2YzI3ZWQzMDVlZSRleHBvcnQkNWI3NTkyMDJhZTRjOWEyZHt9Y2xhc3MgJDc3MWJhNmMyN2VkMzA1ZWUkZXhwb3J0JDRiMGVhNzJiNzU0NTc2ZDEgZXh0ZW5kcyAkNzcxYmE2YzI3ZWQzMDVlZSRleHBvcnQkNWI3NTkyMDJhZTRjOWEyZHtjb25zdHJ1Y3RvcihlLHQpe2lmKHN1cGVyKCksJDc3MWJhNmMyN2VkMzA1ZWUkZXhwb3J0JDRiMGVhNzJiNzU0NTc2ZDEuZGJOYW1lVG9JbnN0YW5jZU1hcHx8KCQ3NzFiYTZjMjdlZDMwNWVlJGV4cG9ydCQ0YjBlYTcyYjc1NDU3NmQxLmRiTmFtZVRvSW5zdGFuY2VNYXA9bmV3IE1hcCksJDc3MWJhNmMyN2VkMzA1ZWUkZXhwb3J0JDRiMGVhNzJiNzU0NTc2ZDEuZGJOYW1lVG9JbnN0YW5jZU1hcC5oYXMoZSkpcmV0dXJuICQ3NzFiYTZjMjdlZDMwNWVlJGV4cG9ydCQ0YjBlYTcyYjc1NDU3NmQxLmRiTmFtZVRvSW5zdGFuY2VNYXAuZ2V0KGUpO3RoaXMuZGI9bnVsbCx0aGlzLmRiTmFtZT1lLHRoaXMuc3RvcmVOYW1lTGlzdD10LCQ3NzFiYTZjMjdlZDMwNWVlJGV4cG9ydCQ0YjBlYTcyYjc1NDU3NmQxLmRiTmFtZVRvSW5zdGFuY2VNYXAuc2V0KGUsdGhpcyl9YXN5bmMgY2hlY2tBbmRDcmVhdGVTdG9yZShlKXtsZXQgdD0oYXdhaXQgaW5kZXhlZERCLmRhdGFiYXNlcygpKS5maW5kKGU9PmUubmFtZT09PXRoaXMuZGJOYW1lKSxyPSExLG49dGhpcztyZXR1cm4gdCYmKHI9YXdhaXQgbmV3IFByb21pc2UoKHQscik9PntsZXQgaT1pbmRleGVkREIub3BlbihuLmRiTmFtZSk7aS5vbnN1Y2Nlc3M9ZnVuY3Rpb24ocil7bGV0IG49ci50YXJnZXQucmVzdWx0LGk9bi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKGUpO24uY2xvc2UoKSx0KGkpfSxpLm9uZXJyb3I9ZnVuY3Rpb24oZSl7cihlLnRhcmdldC5lcnJvcil9fSkpLCEhcnx8bmV3IFByb21pc2UoKHIsaSk9PntsZXQgYT1pbmRleGVkREIub3BlbihuLmRiTmFtZSx0P3QudmVyc2lvbisxOjEpO2Eub251cGdyYWRlbmVlZGVkPWZ1bmN0aW9uKHQpe2xldCByPXQudGFyZ2V0LnJlc3VsdDtyLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoZSl8fHIuY3JlYXRlT2JqZWN0U3RvcmUoZSl9LGEub25zdWNjZXNzPWZ1bmN0aW9uKGUpe2UudGFyZ2V0LnJlc3VsdC5jbG9zZSgpLHIoKX0sYS5vbmVycm9yPWl9KX1hc3luYyBvcGVuREIoKXtsZXQgZSx0O2lmKHRoaXMuZGIpcmV0dXJuIHRoaXMuZGI7bGV0IHI9bmV3IFByb21pc2UoKHIsbik9PntlPXIsdD1ufSk7Zm9yKGxldCBlIG9mIHRoaXMuc3RvcmVOYW1lTGlzdClhd2FpdCB0aGlzLmNoZWNrQW5kQ3JlYXRlU3RvcmUoZSk7bGV0IG49dGhpcyxpPWluZGV4ZWREQi5vcGVuKHRoaXMuZGJOYW1lKTtyZXR1cm4gaS5vbnN1Y2Nlc3M9dD0+e24uZGI9dC50YXJnZXQucmVzdWx0LGUodGhpcy5kYil9LGkub25lcnJvcj10LHJ9YXN5bmMgZXhlY3V0ZU9wZXJhdGlvbihlLHQpe2xldCByPWF3YWl0IHRoaXMub3BlbkRCKCk7cmV0dXJuIG5ldyBQcm9taXNlKChuLGkpPT57bGV0IGE9ci50cmFuc2FjdGlvbihlLFwicmVhZHdyaXRlXCIpLG89YS5vYmplY3RTdG9yZShlKTthLm9uY29tcGxldGU9KCk9Pm4oKSxhLm9uZXJyb3I9ZT0+aShgVHJhbnNhY3Rpb24gZmFpbGVkOiAke2UudGFyZ2V0LmVycm9yfWApO3RyeXt0KG8pfWNhdGNoKGUpe2koYE9wZXJhdGlvbiBmYWlsZWQ6ICR7ZS5tZXNzYWdlfWApfX0pfX1sZXQgJDc3MWJhNmMyN2VkMzA1ZWUkZXhwb3J0JDkwM2FiYTRmNjcyYTc2YjI9bmV3ICQ3NzFiYTZjMjdlZDMwNWVlJGV4cG9ydCQ0YjBlYTcyYjc1NDU3NmQxKCQ3Y2Y4ZWQ4OTVmZWZlY2ZiJGV4cG9ydCQ3OGJiMjk0ZGQ4YjQ1OTUyLFskZjkyY2RkMzBhODJmYTMxMSRleHBvcnQkOTRkMDBkZTc4NDM4NTBjYS5zdG9yZSwkN2IxNTU3YjIzZGNmMTc3MSRleHBvcnQkZjIwMmEzMWU0MTQ3NzA3ZS5zdG9yZSwkZDgxMjIwOTkwM2MwMjg4YSRleHBvcnQkNDA1Y2Y2MWQ0NGIyZDc1ZS5zdG9yZV0pO2NsYXNzICQ4YzExMTE2ZGFmMmFkZTA5JGV4cG9ydCQ5MTZlNTU0MjQzYWFlNjBme2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5zdG9yZUJhY2tlbmQ9ZSx0aGlzLnN0b3JlTmFtZT10fWFzeW5jIGFkZEl0ZW0oZSx0KXtyZXR1cm4gbmV3IFByb21pc2UoYXN5bmMocixuKT0+e3RoaXMuc3RvcmVCYWNrZW5kLmV4ZWN1dGVPcGVyYXRpb24odGhpcy5zdG9yZU5hbWUsaT0+e2xldCBhPWkuYWRkKHQsZSk7YS5vbnN1Y2Nlc3M9cixhLm9uZXJyb3I9bn0pfSl9YXN5bmMgcHV0SXRlbShlLHQpe3JldHVybiBuZXcgUHJvbWlzZShhc3luYyhyLG4pPT57dGhpcy5zdG9yZUJhY2tlbmQuZXhlY3V0ZU9wZXJhdGlvbih0aGlzLnN0b3JlTmFtZSxpPT57bGV0IGE9aS5wdXQodCxlKTthLm9uc3VjY2Vzcz1yLGEub25lcnJvcj1ufSl9KX1hc3luYyBoYXNJdGVtKGUpe3RyeXtpZighYXdhaXQgdGhpcy5nZXRJdGVtKGUpKXJldHVybiExO3JldHVybiEwfWNhdGNoKGUpe3JldHVybiExfX1hc3luYyBnZXRJdGVtKGUpe3JldHVybiBuZXcgUHJvbWlzZShhc3luYyh0LHIpPT57dGhpcy5zdG9yZUJhY2tlbmQuZXhlY3V0ZU9wZXJhdGlvbih0aGlzLnN0b3JlTmFtZSxuPT57bGV0IGk9bi5nZXQoZSk7aS5vbnN1Y2Nlc3M9KCk9Pnt0KGkucmVzdWx0KX0saS5vbmVycm9yPXJ9KX0pfWFzeW5jIHVwZGF0ZUl0ZW0oZSx0KXtyZXR1cm4gbmV3IFByb21pc2UoYXN5bmMocixuKT0+e3RoaXMuc3RvcmVCYWNrZW5kLmV4ZWN1dGVPcGVyYXRpb24odGhpcy5zdG9yZU5hbWUsaT0+e2xldCBhPWkuZ2V0KGUpO2Eub25zdWNjZXNzPSgpPT57bGV0IG49YS5yZXN1bHQ7T2JqZWN0LmFzc2lnbihuLHQpLGkucHV0KG4sZSkscigpfSxhLm9uZXJyb3I9bn0pfSl9YXN5bmMgZGVsZXRlSXRlbShlKXtyZXR1cm4gbmV3IFByb21pc2UoYXN5bmModCxyKT0+e3RoaXMuc3RvcmVCYWNrZW5kLmV4ZWN1dGVPcGVyYXRpb24odGhpcy5zdG9yZU5hbWUsbj0+e2xldCBpPW4uZGVsZXRlKGUpO2kub25zdWNjZXNzPXQsaS5vbmVycm9yPXJ9KX0pfX1jbGFzcyAkZWFhZWRhNjkwNTgxMjU5ZCRleHBvcnQkNDQ5ODUzMDdiNDdjZmI5ZSBleHRlbmRzICQ4YzExMTE2ZGFmMmFkZTA5JGV4cG9ydCQ5MTZlNTU0MjQzYWFlNjBme2NvbnN0cnVjdG9yKCl7c3VwZXIoJDc3MWJhNmMyN2VkMzA1ZWUkZXhwb3J0JDkwM2FiYTRmNjcyYTc2YjIsJGY5MmNkZDMwYTgyZmEzMTEkZXhwb3J0JDk0ZDAwZGU3ODQzODUwY2Euc3RvcmUpfWFzeW5jIGdldEFwcChlKXtyZXR1cm4gdGhpcy5nZXRJdGVtKGUpfWFzeW5jIGFkZEFwcChlLHQpe3JldHVybiB0aGlzLmFkZEl0ZW0oZSx0KX1hc3luYyBwdXRBcHAoZSx0KXtyZXR1cm4gdGhpcy5wdXRJdGVtKGUsdCl9YXN5bmMgaGFzQXBwKGUpe3JldHVybiB0aGlzLmhhc0l0ZW0oZSl9YXN5bmMgZGVsZXRlQXBwKGUpe3JldHVybiB0aGlzLmRlbGV0ZUl0ZW0oZSl9fWNsYXNzICRlYWFlZGE2OTA1ODEyNTlkJGV4cG9ydCQ5MTkxMzhkNjIwNTVlY2JmIGV4dGVuZHMgJDhjMTExMTZkYWYyYWRlMDkkZXhwb3J0JDkxNmU1NTQyNDNhYWU2MGZ7Y29uc3RydWN0b3IoKXtzdXBlcigkNzcxYmE2YzI3ZWQzMDVlZSRleHBvcnQkOTAzYWJhNGY2NzJhNzZiMiwkN2IxNTU3YjIzZGNmMTc3MSRleHBvcnQkZjIwMmEzMWU0MTQ3NzA3ZS5zdG9yZSl9YXN5bmMgZ2V0Q2h1bmsoZSl7cmV0dXJuIHRoaXMuZ2V0SXRlbShlKX1hc3luYyBhZGRDaHVuayhlLHQpe3JldHVybiB0aGlzLmFkZEl0ZW0oZSx0KX1hc3luYyBwdXRDaHVuayhlLHQpe3JldHVybiB0aGlzLnB1dEl0ZW0oZSx0KX1hc3luYyBkZWxldGVDaHVuayhlKXtyZXR1cm4gdGhpcy5kZWxldGVJdGVtKGUpfX1jbGFzcyAkZWFhZWRhNjkwNTgxMjU5ZCRleHBvcnQkZTAyNzZiMjQ5NmVkMmEwMSBleHRlbmRzICQ4YzExMTE2ZGFmMmFkZTA5JGV4cG9ydCQ5MTZlNTU0MjQzYWFlNjBme2NvbnN0cnVjdG9yKCl7c3VwZXIoJDc3MWJhNmMyN2VkMzA1ZWUkZXhwb3J0JDkwM2FiYTRmNjcyYTc2YjIsJGQ4MTIyMDk5MDNjMDI4OGEkZXhwb3J0JDQwNWNmNjFkNDRiMmQ3NWUuc3RvcmUpfWFzeW5jIGdldChlKXtyZXR1cm4gdGhpcy5nZXRJdGVtKGUpfWFzeW5jIGFkZChlLHQpe3JldHVybiB0aGlzLmFkZEl0ZW0oZSx0KX1hc3luYyBwdXQoZSx0KXtyZXR1cm4gdGhpcy5wdXRJdGVtKGUsdCl9YXN5bmMgZGVsZXRlKGUpe3JldHVybiB0aGlzLmRlbGV0ZUl0ZW0oZSl9fWNsYXNzICQyMmM4ZmUzMDczZjMxODkwJGV4cG9ydCRiMWNlYzUzODhjNmVlMTdmIGV4dGVuZHMgJDhjMGRjYzQyYjA3NmI3NWQkZXhwb3J0JDJkYjI0NzdhODdlMDA3OTl7Y29uc3RydWN0b3IoZSx0LHIpe3N1cGVyKGUsdCksdGhpcy5kYXRhU2VydmljZT1uZXcgJDUzMzcxYWJkM2FhNGNiZDckZXhwb3J0JGFhNWJmMTRiZTBkMGRlODAoZSksdGhpcy5yZXF1ZXN0Q2FjaGU9bmV3IE1hcCx0aGlzLmd1ZGh1Yj1yLHRoaXMuc3RvcmVNYW5hZ2VyPW5ldyAkZWFhZWRhNjkwNTgxMjU5ZCRleHBvcnQkZTAyNzZiMjQ5NmVkMmEwMX1zdGF0aWNbU3ltYm9sLmhhc0luc3RhbmNlXShlKXt0cnl7aWYoZSBpbnN0YW5jZW9mICQyMmM4ZmUzMDczZjMxODkwJGV4cG9ydCRiMWNlYzUzODhjNmVlMTdmKXJldHVybiEwO3JldHVybiExfWNhdGNoKGUpe3JldHVybiExfX1hc3luYyBnZXRDYWNoZWRNZXJnZWRDaHVuayhlLHQpe3RyeXtyZXR1cm4oYXdhaXQgdGhpcy5zdG9yZU1hbmFnZXIuZ2V0KGUpKS5tZXJnZWREYXRhfWNhdGNoKGEpe2xldCByPXQubWFwKHQ9PnRoaXMuZGF0YVNlcnZpY2UuZ2V0Q2h1bmsoZSx0KSksbj1hd2FpdCBQcm9taXNlLmFsbChyKSxpPWF3YWl0IHRoaXMuZ3VkaHViLnV0aWwubWVyZ2VDaHVua3Mobik7cmV0dXJuIHRoaXMucHV0TWVyZ2VkQ2h1bmtzKGUse2hhc2hlczp0LG1lcmdlZERhdGE6e2l0ZW1zX2xpc3Q6aX19KSx7aXRlbXNfbGlzdDppfX19aXNXaXRoQ2FjaGUoKXtyZXR1cm4hMH1hc3luYyBnZXRNZXJnZWRDaHVua0ZvckFwcChlKXt9YXN5bmMgZ2V0TWVyZ2VkQ2h1bmtGb3JJRExpc3QoZSx0KXt0cnl7bGV0IHIsbj0hMCxpPWF3YWl0IHRoaXMuc3RvcmVNYW5hZ2VyLmdldChlKTt0cnl7aWYodC5sZW5ndGg8aS5oYXNoZXMubGVuZ3RoKXRocm93IEVycm9yKCk7Zm9yKGxldCBlIG9mIGkuaGFzaGVzKXQuaW5kZXhPZihlKSE9aS5oYXNoZXMuaW5kZXhPZihlKSYmKG49ITEpfWNhdGNoKGUpe249ITF9bGV0IGE9W10sbz1bXTtpZih0Lmxlbmd0aD5pLmhhc2hlcy5sZW5ndGgmJihhPXQuc2xpY2UoaS5oYXNoZXMubGVuZ3RoKSksbnx8KGE9dCksYS5sZW5ndGg+MCl7bGV0IHQ9YS5tYXAodD0+dGhpcy5kYXRhU2VydmljZS5nZXRDaHVuayhlLHQpKTtvPWF3YWl0IFByb21pc2UuYWxsKHQpfXJldHVybiBufHwocj1hd2FpdCB0aGlzLmd1ZGh1Yi51dGlsLm1lcmdlQ2h1bmtzKFsuLi5vXSkpLG4mJihyPWF3YWl0IHRoaXMuZ3VkaHViLnV0aWwubWVyZ2VDaHVua3MoW2kubWVyZ2VkRGF0YSwuLi5vXSkpLGEubGVuZ3RoPjAmJnRoaXMucHV0TWVyZ2VkQ2h1bmtzKGUse2hhc2hlczp0LG1lcmdlZERhdGE6e2l0ZW1zX2xpc3Q6cn19KSx7aXRlbXNfbGlzdDpyfX1jYXRjaChhKXtsZXQgcj10Lm1hcCh0PT50aGlzLmRhdGFTZXJ2aWNlLmdldENodW5rKGUsdCkpLG49YXdhaXQgUHJvbWlzZS5hbGwociksaT1hd2FpdCB0aGlzLmd1ZGh1Yi51dGlsLm1lcmdlQ2h1bmtzKG4pO3JldHVybiB0aGlzLnB1dE1lcmdlZENodW5rcyhlLHtoYXNoZXM6dCxtZXJnZWREYXRhOntpdGVtc19saXN0Oml9fSkse2l0ZW1zX2xpc3Q6aX19fWFzeW5jIHB1dE1lcmdlZENodW5rcyhlLHQpe3JldHVybiB0aGlzLnN0b3JlTWFuYWdlci5wdXQoZSx0KX19bGV0ICRmOTk1MmEzYWNlY2U1OGYwJGV4cG9ydCRlODBlMGMzNWIxZmQ0Mzg9e0lOSVQ6MSxSRVFVRVNUX0FQUDoyLFBST0NFU1NfREFUQTozLERFQ0xJTkVfUFJPQ0VTU19EQVRBX1JFUVVFU1Q6NH07Y2xhc3MgJGY5OTUyYTNhY2VjZTU4ZjAkZXhwb3J0JDYxODI5ZDM4YzM2ZWZhMzYgZXh0ZW5kcyAkM2QxMGNiODJiZTA4NDg2YiRleHBvcnQkZmQ2N2FlYzYzMDE0YjljNXtjb25zdHJ1Y3RvcihlLHQscil7c3VwZXIoZSx0LHIpLHRoaXMuZGF0YVNlcnZpY2U9bmV3ICQ1Nzc4NWEyNDM4NjE0YjZjJGV4cG9ydCQxMTZlZDMxNGJiMWM0MjBlKGUsbnVsbCxyKSx0aGlzLnJlcXVlc3RDYWNoZT1uZXcgTWFwLHRoaXMuZ3VkaHViPXIsdGhpcy5jaHVua0RhdGFTZXJ2aWNlPW5ldyAkMjJjOGZlMzA3M2YzMTg5MCRleHBvcnQkYjFjZWM1Mzg4YzZlZTE3ZihlLCRkODEyMjA5OTAzYzAyODhhJGV4cG9ydCQ0MDVjZjYxZDQ0YjJkNzVlLHIpLHRoaXMuc3RvcmVNYW5hZ2VyPW5ldyAkZWFhZWRhNjkwNTgxMjU5ZCRleHBvcnQkNDQ5ODUzMDdiNDdjZmI5ZX1zdGF0aWNbU3ltYm9sLmhhc0luc3RhbmNlXShlKXt0cnl7aWYoZSBpbnN0YW5jZW9mICRmOTk1MmEzYWNlY2U1OGYwJGV4cG9ydCQ2MTgyOWQzOGMzNmVmYTM2KXJldHVybiEwO3JldHVybiExfWNhdGNoKGUpe3JldHVybiExfX1pc1dpdGhDYWNoZSgpe3JldHVybiExfWFzeW5jIGdldEFwcFdpdGhvdXRQcm9jZXNzaW5nKGUpe2xldCB0PWF3YWl0IHRoaXMuZGF0YVNlcnZpY2UuZ2V0QXBwV2l0aG91dFByb2Nlc3NpbmcoZSk7cmV0dXJuIGF3YWl0IHRoaXMucHV0QXBwKGUsdCksdH1hc3luYyBnZXRBcHAoZSl7bGV0IHQ9dGhpcyxyPWF3YWl0IHRoaXMuZGF0YVNlcnZpY2UuZ2V0QXBwV2l0aG91dFByb2Nlc3NpbmcoZSk7cmV0dXJuIGF3YWl0IHQucHJvY2Vzc1JlcXVlc3RlZEFwcChlLHIpfWFzeW5jIGhhcyhlKXt0cnl7cmV0dXJuIHRoaXMuc3RvcmVNYW5hZ2VyLmhhc0FwcChlKX1jYXRjaChlKXt9fWFzeW5jIGdldENhY2hlZChlKXtyZXR1cm4gdGhpcy5zdG9yZU1hbmFnZXIuZ2V0QXBwKGUpfWFzeW5jIHB1dEFwcChlLHQpe3JldHVybiB0aGlzLnN0b3JlTWFuYWdlci5wdXRBcHAoZSx0KX19Y2xhc3MgJGY5OTUyYTNhY2VjZTU4ZjAkZXhwb3J0JDdlZjI0NjQzZjRkMmQwYmEgZXh0ZW5kcyAkM2QxMGNiODJiZTA4NDg2YiRleHBvcnQkZmQ2N2FlYzYzMDE0YjljNXtjb25zdHJ1Y3RvcihlLHQscil7c3VwZXIoZSx0LHIpLHRoaXMuZGF0YVNlcnZpY2U9bmV3ICQ1Nzc4NWEyNDM4NjE0YjZjJGV4cG9ydCQxMTZlZDMxNGJiMWM0MjBlKGUsdCxyKSx0aGlzLnJlcXVlc3RDYWNoZT1uZXcgTWFwLHRoaXMuZ3VkaHViPXIsdGhpcy5yZXNvbHZlRm5NYXA9bmV3IE1hcCx0aGlzLmFwcFJlcXVlc3RBbmRQcm9jZXNzV29ya2VyPW5ldyBBcHBSZXF1ZXN0V29ya2VyU2NyaXB0LHRoaXMuYXBwUmVxdWVzdEFuZFByb2Nlc3NXb3JrZXIucG9zdE1lc3NhZ2Uoe3R5cGU6JGY5OTUyYTNhY2VjZTU4ZjAkZXhwb3J0JGU4MGUwYzM1YjFmZDQzOC5JTklULGd1ZGh1YlNlcmlhbGl6ZWQ6dGhpcy5ndWRodWIuc2VyaWFsaXplZH0pO2xldCBuPXRoaXM7dGhpcy5hcHBSZXF1ZXN0QW5kUHJvY2Vzc1dvcmtlci5vbmVycm9yPWZ1bmN0aW9uKGUpe30sdGhpcy5hcHBSZXF1ZXN0QW5kUHJvY2Vzc1dvcmtlci5vbm1lc3NhZ2U9ZnVuY3Rpb24oZSl7ZS5kYXRhLnR5cGU9PSRmOTk1MmEzYWNlY2U1OGYwJGV4cG9ydCRlODBlMGMzNWIxZmQ0MzguUkVRVUVTVF9BUFAmJm4ucmVzb2x2ZUZuTWFwLmhhcyhlLmRhdGEuaWQpJiZuLnJlc29sdmVGbk1hcC5nZXQoZS5kYXRhLmlkKShlLmRhdGEuZGF0YSksZS5kYXRhLnR5cGU9PSRmOTk1MmEzYWNlY2U1OGYwJGV4cG9ydCRlODBlMGMzNWIxZmQ0MzguUFJPQ0VTU19EQVRBJiYobi5ndWRodWIuaXRlbVByb2Nlc3Nvci5oYW5kbGVEaWZmKGUuZGF0YS5pZCxlLmRhdGEuY29tcGFyZVJlcyksKGUuZGF0YS52aWV3TGlzdENoYW5nZWR8fGUuZGF0YS5maWVsZExpc3RDaGFuZ2VkKSYmbi5ndWRodWIuYXBwUHJvY2Vzc29yLnVwZGF0ZUFwcEZpZWxkc0FuZFZpZXdzKGUuZGF0YS5uZXdWZXJzaW9uKSl9LHRoaXMuaXNXaXRoQ2FjaGUoKSx0aGlzLnN0b3JlTWFuYWdlcj1uZXcgJGVhYWVkYTY5MDU4MTI1OWQkZXhwb3J0JDQ0OTg1MzA3YjQ3Y2ZiOWV9c3RhdGljW1N5bWJvbC5oYXNJbnN0YW5jZV0oZSl7dHJ5e2lmKGUgaW5zdGFuY2VvZiAkZjk5NTJhM2FjZWNlNThmMCRleHBvcnQkN2VmMjQ2NDNmNGQyZDBiYSlyZXR1cm4hMDtyZXR1cm4hMX1jYXRjaChlKXtyZXR1cm4hMX19aXNXaXRoQ2FjaGUoKXtyZXR1cm4hMH1hc3luYyBnZXRBcHAoZSl7aWYodGhpcy5yZXF1ZXN0Q2FjaGUuaGFzKGUpKXJldHVybiB0aGlzLnJlcXVlc3RDYWNoZS5nZXQoZSk7bGV0IHQ9dGhpcyxyPWF3YWl0IHRoaXMuaGFzKGUpO3I9ITE7e2xldCByPW5ldyBQcm9taXNlKChyLG4pPT57dC5yZXNvbHZlRm5NYXAuc2V0KGUscil9KTtyZXR1cm4gdGhpcy5yZXF1ZXN0Q2FjaGUuc2V0KGUsciksdGhpcy5hcHBSZXF1ZXN0QW5kUHJvY2Vzc1dvcmtlci5wb3N0TWVzc2FnZSh7dHlwZTokZjk5NTJhM2FjZWNlNThmMCRleHBvcnQkZTgwZTBjMzViMWZkNDM4LlJFUVVFU1RfQVBQLGlkOmV9KSxyfX1hc3luYyBnZXRDYWNoZWQoZSl7cmV0dXJuIHRoaXMuc3RvcmVNYW5hZ2VyLmdldEFwcChlKX1hc3luYyBoYXMoZSl7dHJ5e3JldHVybiB0aGlzLnN0b3JlTWFuYWdlci5oYXNBcHAoZSl9Y2F0Y2goZSl7fX1hc3luYyBwdXRBcHAoZSx0KXtyZXR1cm4gdGhpcy5zdG9yZU1hbmFnZXIucHV0QXBwKGUsdCl9fWNsYXNzICRmOTk1MmEzYWNlY2U1OGYwJGV4cG9ydCRmMWFjYTRkMjlmNmRiMjM5IGV4dGVuZHMgJDNkMTBjYjgyYmUwODQ4NmIkZXhwb3J0JGZkNjdhZWM2MzAxNGI5YzV7Y29uc3RydWN0b3IoZSx0LHIpe3N1cGVyKGUsdCxyKSx0aGlzLmRhdGFTZXJ2aWNlPW5ldyAkNTc3ODVhMjQzODYxNGI2YyRleHBvcnQkMTE2ZWQzMTRiYjFjNDIwZShlLG51bGwsciksdGhpcy5yZXF1ZXN0Q2FjaGU9bmV3IE1hcCx0aGlzLmd1ZGh1Yj1yfWlzV2l0aENhY2hlKCl7cmV0dXJuITF9YXN5bmMgZ2V0QXBwV2l0aG91dFByb2Nlc3NpbmcoZSl7bGV0IHQ9YXdhaXQgdGhpcy5kYXRhU2VydmljZS5nZXRBcHBXaXRob3V0UHJvY2Vzc2luZyhlKTtyZXR1cm4gYXdhaXQgdGhpcy5wdXRBcHAoZSx0KSx0fWFzeW5jIGdldEFwcChlKXtsZXQgdCxyO2lmKHRoaXMucmVxdWVzdENhY2hlLmhhcyhlKSlyZXR1cm4gdGhpcy5yZXF1ZXN0Q2FjaGUuZ2V0KGUpO2xldCBuPW5ldyBQcm9taXNlKChlLG4pPT57dD1lLHI9bn0pO3RoaXMucmVxdWVzdENhY2hlLnNldChlLG4pO2xldCBpPWF3YWl0IHRoaXMuZGF0YVNlcnZpY2UuZ2V0QXBwV2l0aG91dFByb2Nlc3NpbmcoZSksYT1hd2FpdCB0aGlzLnByb2Nlc3NSZXF1ZXN0ZWRBcHAoZSxpKTtyZXR1cm4gdChhKSxhfWFzeW5jIGhhcyhlKXtyZXR1cm4hMX1hc3luYyBnZXRDYWNoZWQoZSl7dGhyb3cgRXJyb3IoKX1hc3luYyBwdXRBcHAoZSx0KXt0aHJvdyBFcnJvcigpfX1jbGFzcyAkZjk5NTJhM2FjZWNlNThmMCRleHBvcnQkN2ZkNDg5N2M2YzRjMGQ4YiBleHRlbmRzICQzZDEwY2I4MmJlMDg0ODZiJGV4cG9ydCRmZDY3YWVjNjMwMTRiOWM1e31jbGFzcyAkZjk5NTJhM2FjZWNlNThmMCRleHBvcnQkYmExNWU4MWU2MjgzMDcxZCBleHRlbmRzICQzZDEwY2I4MmJlMDg0ODZiJGV4cG9ydCRmZDY3YWVjNjMwMTRiOWM1e2NvbnN0cnVjdG9yKGUsdCxyKXtzdXBlcihlLHQsciksdGhpcy5kYXRhU2VydmljZT1uZXcgJDU3Nzg1YTI0Mzg2MTRiNmMkZXhwb3J0JDExNmVkMzE0YmIxYzQyMGUoZSx0LHIpLHRoaXMucmVxdWVzdENhY2hlPW5ldyBNYXAsdGhpcy5ndWRodWI9cix0aGlzLnJlc29sdmVGbk1hcD1uZXcgTWFwLHRoaXMuYXBwUmVxdWVzdEFuZFByb2Nlc3NXb3JrZXI9bmV3IEFwcFJlcXVlc3RXb3JrZXJTY3JpcHQsdGhpcy5hcHBSZXF1ZXN0QW5kUHJvY2Vzc1dvcmtlci5wb3N0TWVzc2FnZSh7dHlwZTokZjk5NTJhM2FjZWNlNThmMCRleHBvcnQkZTgwZTBjMzViMWZkNDM4LklOSVQsZ3VkaHViU2VyaWFsaXplZDp0aGlzLmd1ZGh1Yi5zZXJpYWxpemVkfSk7bGV0IG49dGhpczt0aGlzLmFwcFJlcXVlc3RBbmRQcm9jZXNzV29ya2VyLm9uZXJyb3I9ZnVuY3Rpb24oZSl7fSx0aGlzLmFwcFJlcXVlc3RBbmRQcm9jZXNzV29ya2VyLm9ubWVzc2FnZT1mdW5jdGlvbihlKXtlLmRhdGEudHlwZT09JGY5OTUyYTNhY2VjZTU4ZjAkZXhwb3J0JGU4MGUwYzM1YjFmZDQzOC5SRVFVRVNUX0FQUCYmbi5yZXNvbHZlRm5NYXAuaGFzKGUuZGF0YS5pZCkmJm4ucmVzb2x2ZUZuTWFwLmdldChlLmRhdGEuaWQpKGUuZGF0YS5kYXRhKSxlLmRhdGEudHlwZT09JGY5OTUyYTNhY2VjZTU4ZjAkZXhwb3J0JGU4MGUwYzM1YjFmZDQzOC5QUk9DRVNTX0RBVEEmJihuLmd1ZGh1Yi5pdGVtUHJvY2Vzc29yLmhhbmRsZURpZmYoZS5kYXRhLmlkLGUuZGF0YS5jb21wYXJlUmVzKSwoZS5kYXRhLnZpZXdMaXN0Q2hhbmdlZHx8ZS5kYXRhLmZpZWxkTGlzdENoYW5nZWQpJiZuLmd1ZGh1Yi5hcHBQcm9jZXNzb3IudXBkYXRlQXBwRmllbGRzQW5kVmlld3MoZS5kYXRhLm5ld1ZlcnNpb24pKX0sdGhpcy5pc1dpdGhDYWNoZSgpLHRoaXMuc3RvcmVNYW5hZ2VyPW5ldyAkZWFhZWRhNjkwNTgxMjU5ZCRleHBvcnQkNDQ5ODUzMDdiNDdjZmI5ZX1zdGF0aWNbU3ltYm9sLmhhc0luc3RhbmNlXShlKXt0cnl7aWYoZSBpbnN0YW5jZW9mICRmOTk1MmEzYWNlY2U1OGYwJGV4cG9ydCQ3ZWYyNDY0M2Y0ZDJkMGJhKXJldHVybiEwO3JldHVybiExfWNhdGNoKGUpe3JldHVybiExfX1pc1dpdGhDYWNoZSgpe3JldHVybiExfWFzeW5jIGdldEFwcChlKXtsZXQgdCxyO2lmKHRoaXMucmVxdWVzdENhY2hlLmhhcyhlKSlyZXR1cm4gdGhpcy5yZXF1ZXN0Q2FjaGUuZ2V0KGUpO2xldCBuPW5ldyBQcm9taXNlKChlLG4pPT57dD1lLHI9bn0pO3JldHVybiB0aGlzLnJlc29sdmVGbk1hcC5zZXQoZSx0KSx0aGlzLnJlcXVlc3RDYWNoZS5zZXQoZSxuKSx0aGlzLmFwcFJlcXVlc3RBbmRQcm9jZXNzV29ya2VyLnBvc3RNZXNzYWdlKHt0eXBlOiRmOTk1MmEzYWNlY2U1OGYwJGV4cG9ydCRlODBlMGMzNWIxZmQ0MzguUkVRVUVTVF9BUFAsaWQ6ZX0pLG59YXN5bmMgZ2V0Q2FjaGVkKGUpe3JldHVybiB0aGlzLnN0b3JlTWFuYWdlci5nZXRBcHAoZSl9YXN5bmMgaGFzKGUpe3RyeXtyZXR1cm4gdGhpcy5zdG9yZU1hbmFnZXIuaGFzQXBwKGUpfWNhdGNoKGUpe319YXN5bmMgcHV0QXBwKGUsdCl7cmV0dXJuIHRoaXMuc3RvcmVNYW5hZ2VyLnB1dEFwcChlLHQpfX1pZigkNXhvekIuSVNfQlJPV1NFUiYmJDcyM2YzYjg2MDU1M2I1MGIkZXhwb3J0JGUxNDk3ODBiNTU5Yzg3ZTgmJiEkNzIzZjNiODYwNTUzYjUwYiRleHBvcnQkNjY2NzY0YWEzNzI1YjcwZiYmKCRiNDAyOTU0ZTIwZGYzODAwJGV4cG9ydCRmZDY3YWVjNjMwMTRiOWM1PSRmOTk1MmEzYWNlY2U1OGYwJGV4cG9ydCQ3ZWYyNDY0M2Y0ZDJkMGJhLCRiNDAyOTU0ZTIwZGYzODAwJGV4cG9ydCQ2ZDQ0NjNiMDAwMWEzNWVhPSRmOTJjZGQzMGE4MmZhMzExJGV4cG9ydCQ5NGQwMGRlNzg0Mzg1MGNhKSwkNXhvekIuSVNfQlJPV1NFUiYmJDcyM2YzYjg2MDU1M2I1MGIkZXhwb3J0JDY2Njc2NGFhMzcyNWI3MGYmJiEkNzIzZjNiODYwNTUzYjUwYiRleHBvcnQkZTE0OTc4MGI1NTljODdlOCYmKCRiNDAyOTU0ZTIwZGYzODAwJGV4cG9ydCRmZDY3YWVjNjMwMTRiOWM1PSRmOTk1MmEzYWNlY2U1OGYwJGV4cG9ydCRiYTE1ZTgxZTYyODMwNzFkLCRiNDAyOTU0ZTIwZGYzODAwJGV4cG9ydCQ2ZDQ0NjNiMDAwMWEzNWVhPSRmOTJjZGQzMGE4MmZhMzExJGV4cG9ydCQ5NGQwMGRlNzg0Mzg1MGNhKSwkNXhvekIuSVNfQlJPV1NFUnx8KCRiNDAyOTU0ZTIwZGYzODAwJGV4cG9ydCRmZDY3YWVjNjMwMTRiOWM1PSQ1Nzc4NWEyNDM4NjE0YjZjJGV4cG9ydCQxMTZlZDMxNGJiMWM0MjBlKSwkNzIzZjNiODYwNTUzYjUwYiRleHBvcnQkNjY2NzY0YWEzNzI1YjcwZiYmJDcyM2YzYjg2MDU1M2I1MGIkZXhwb3J0JGUxNDk3ODBiNTU5Yzg3ZTgpdGhyb3cgRXJyb3IoKTskNXhvekIuSVNfQlJPV1NFUiYmJDcyM2YzYjg2MDU1M2I1MGIkZXhwb3J0JGNiOWMyY2IzMmUwN2FhMjMmJiEkNzIzZjNiODYwNTUzYjUwYiRleHBvcnQkNjY2NzY0YWEzNzI1YjcwZiYmKCRiNDAyOTU0ZTIwZGYzODAwJGV4cG9ydCQyZGIyNDc3YTg3ZTAwNzk5PSQyMmM4ZmUzMDczZjMxODkwJGV4cG9ydCRiMWNlYzUzODhjNmVlMTdmLCRiNDAyOTU0ZTIwZGYzODAwJGV4cG9ydCRlNGM3ZTJiZjc2MDkyNDBmPSQ3YjE1NTdiMjNkY2YxNzcxJGV4cG9ydCRmMjAyYTMxZTQxNDc3MDdlKSwkNXhvekIuSVNfQlJPV1NFUiYmJDcyM2YzYjg2MDU1M2I1MGIkZXhwb3J0JGNiOWMyY2IzMmUwN2FhMjMmJiQ3MjNmM2I4NjA1NTNiNTBiJGV4cG9ydCQ2NjY3NjRhYTM3MjViNzBmJiYoJGI0MDI5NTRlMjBkZjM4MDAkZXhwb3J0JDJkYjI0NzdhODdlMDA3OTk9JDIyYzhmZTMwNzNmMzE4OTAkZXhwb3J0JGIxY2VjNTM4OGM2ZWUxN2YsJGI0MDI5NTRlMjBkZjM4MDAkZXhwb3J0JGU0YzdlMmJmNzYwOTI0MGY9JDdiMTU1N2IyM2RjZjE3NzEkZXhwb3J0JGYyMDJhMzFlNDE0NzcwN2UpLCQ1eG96Qi5JU19CUk9XU0VSfHwoJGI0MDI5NTRlMjBkZjM4MDAkZXhwb3J0JDJkYjI0NzdhODdlMDA3OTk9JDUzMzcxYWJkM2FhNGNiZDckZXhwb3J0JGFhNWJmMTRiZTBkMGRlODApO2xldCAkYjQwMjk1NGUyMGRmMzgwMCRleHBvcnQkYmE0MjdhODk3NDhkMzYzNj0kZjk5NTJhM2FjZWNlNThmMCRleHBvcnQkZjFhY2E0ZDI5ZjZkYjIzOSwkYjQwMjk1NGUyMGRmMzgwMCRleHBvcnQkYTEzM2JmMTdkM2ZkMDJmZj0kMjJjOGZlMzA3M2YzMTg5MCRleHBvcnQkYjFjZWM1Mzg4YzZlZTE3ZjskNzIzZjNiODYwNTUzYjUwYiRleHBvcnQkNjY2NzY0YWEzNzI1YjcwZiYmISQ3MjNmM2I4NjA1NTNiNTBiJGV4cG9ydCRlMTQ5NzgwYjU1OWM4N2U4JiYoJGI0MDI5NTRlMjBkZjM4MDAkZXhwb3J0JGJhNDI3YTg5NzQ4ZDM2MzY9JGY5OTUyYTNhY2VjZTU4ZjAkZXhwb3J0JGYxYWNhNGQyOWY2ZGIyMzkpO3ZhciAkNXhvekI9cGFyY2VsUmVxdWlyZShcIjV4b3pCXCIpO2NsYXNzICRkZTNjZmVmMDE5Zjg1ZTI1JGV4cG9ydCRiMWMyYjY2MWQ4YTFmZDgye2NvbnN0cnVjdG9yKGUsdCxyLG4saSxhLG8pe3RoaXMuc3RvcmFnZT1lLHRoaXMucGlwZVNlcnZpY2U9dCx0aGlzLnJlcT1yLHRoaXMud3M9bix0aGlzLmFwcGxpc3RSZWNlaXZlZD0hMSx0aGlzLmFjdGl2YXRlU1c9YSx0aGlzLnV0aWw9aSx0aGlzLmFwcExpc3RlbmVycygpLHRoaXMuZGF0YVNlcnZpY2U9byx0aGlzLmFwcFJlcXVlc3RDYWNoZT1uZXcgTWFwfWFzeW5jIGNyZWF0ZU5ld0FwcEFwaShlKXt0cnl7bGV0IHQ9YXdhaXQgdGhpcy5yZXEucG9zdCh7dXJsOlwiL2FwaS9hcHAvY3JlYXRlXCIsZm9ybTp7YXBwOkpTT04uc3RyaW5naWZ5KGUpfX0pO3JldHVybiB0LmZyb21fYXBwc19saXN0PSEwLHR9Y2F0Y2goZSl7cmV0dXJuIGNvbnNvbGUubG9nKGUpLG51bGx9fWFzeW5jIHVwZGF0ZUFwcEFwaShlKXt0cnl7cmV0dXJuIGF3YWl0IHRoaXMucmVxLnBvc3Qoe3VybDpcIi9hcGkvYXBwL3VwZGF0ZVwiLGZvcm06e2FwcDpKU09OLnN0cmluZ2lmeShlKX19KX1jYXRjaChlKXtyZXR1cm4gY29uc29sZS5sb2coZSksbnVsbH19YXN5bmMgZGVsZXRlQXBwQXBpKGUpe3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5yZXEucG9zdCh7dXJsOlwiL2FwaS9hcHAvZGVsZXRlXCIsZm9ybTp7YXBwX2lkOmV9fSl9Y2F0Y2goZSl7cmV0dXJuIGNvbnNvbGUubG9nKGUpLG51bGx9fWFzeW5jIGdldEFwcExpc3RBcGkoKXt0cnl7cmV0dXJuKGF3YWl0IHRoaXMucmVxLmdldCh7dXJsOlwiL2FwaS9hcHBsaXN0L2dldFwifSkpLmFwcHNfbGlzdC5tYXAoZT0+KGUuZnJvbV9hcHBzX2xpc3Q9ITAsZSkpfWNhdGNoKGUpe3JldHVybiBjb25zb2xlLmxvZyhlKSxudWxsfX1nZXRBcHBMaXN0RnJvbVN0b3JhZ2UoKXtyZXR1cm4gdGhpcy5zdG9yYWdlLmdldEFwcHNMaXN0KCl9Z2V0QXBwRnJvbVN0b3JhZ2UoZSl7bGV0IHQ9dGhpcy5zdG9yYWdlLmdldEFwcChlKTtyZXR1cm4gdCYmdC5maWVsZF9saXN0Lmxlbmd0aD90Om51bGx9YWRkTmV3QXBwVG9TdG9yYWdlKGUpe3JldHVybiB0aGlzLnN0b3JhZ2UuZ2V0QXBwc0xpc3QoKS5wdXNoKGUpfXNhdmVBcHBJblN0b3JhZ2UoZSl7ZS5pdGVtc19vYmplY3Q9e307Zm9yKGxldCB0PTA7dDxlLml0ZW1zX2xpc3QubGVuZ3RoO3QrKyl7ZS5pdGVtc19vYmplY3RbZS5pdGVtc19saXN0W3RdLml0ZW1faWRdPXt9O2ZvcihsZXQgcj0wO3I8ZS5pdGVtc19saXN0W3RdLmZpZWxkcy5sZW5ndGg7cisrKWUuaXRlbXNfb2JqZWN0W2UuaXRlbXNfbGlzdFt0XS5pdGVtX2lkXVtlLml0ZW1zX2xpc3RbdF0uZmllbGRzW3JdLmZpZWxkX2lkXT1lLml0ZW1zX2xpc3RbdF0uZmllbGRzW3JdfWxldCB0PXRoaXMuc3RvcmFnZS5nZXRBcHAoZS5hcHBfaWQpO3JldHVybiB0PyhlLmZyb21fYXBwc19saXN0PXQuZnJvbV9hcHBzX2xpc3QsZS5wZXJtaXNzaW9uPXQucGVybWlzc2lvbix0aGlzLnN0b3JhZ2UudXBkYXRlQXBwKGUpKTooZS5mcm9tX2FwcHNfbGlzdD0hMSx0aGlzLmFkZE5ld0FwcFRvU3RvcmFnZShlKSksdGhpcy5nZXRBcHBGcm9tU3RvcmFnZShlLmFwcF9pZCl9dXBkYXRlQXBwRmllbGRzQW5kVmlld3MoZSl7bGV0IHQ9dGhpcy5nZXRBcHBGcm9tU3RvcmFnZShlLmFwcF9pZCk7ZS5pdGVtc19saXN0PXQuaXRlbXNfbGlzdCxlLmZpbGVfbGlzdD10LmZpbGVfbGlzdCxlLmZyb21fYXBwc19saXN0PXQuZnJvbV9hcHBzX2xpc3QsZS5pdGVtc19vYmplY3Q9dC5pdGVtc19vYmplY3QsdGhpcy5zdG9yYWdlLnVwZGF0ZUFwcChlKSx0aGlzLnBpcGVTZXJ2aWNlLmVtaXQoXCJnaF9hcHBfdmlld3NfdXBkYXRlXCIse2FwcF9pZDplLmFwcF9pZH0sZS52aWV3c19saXN0KSxlLmZpZWxkX2xpc3QuZm9yRWFjaCh0PT57dGhpcy5waXBlU2VydmljZS5lbWl0KFwiZ2hfbW9kZWxfdXBkYXRlXCIse2FwcF9pZDplLmFwcF9pZCxmaWVsZF9pZDp0LmZpZWxkX2lkfSx0KX0pfXVwZGF0ZUFwcEluU3RvcmFnZShlKXt0aGlzLnN0b3JhZ2UuZ2V0QXBwKGUuYXBwX2lkKT8odGhpcy5zdG9yYWdlLnVwZGF0ZUFwcChlKSx0aGlzLnBpcGVTZXJ2aWNlLmVtaXQoXCJnaF9hcHBfdXBkYXRlXCIse2FwcF9pZDplLmFwcF9pZH0sZSksdGhpcy5waXBlU2VydmljZS5lbWl0KFwiZ2hfaXRlbXNfdXBkYXRlXCIse2FwcF9pZDplLmFwcF9pZH0sZS5pdGVtc19saXN0KSk6dGhpcy5hZGROZXdBcHBUb1N0b3JhZ2UoZSl9ZGVsZXRpbmdBcHBGcm9tU3RvcmFnZShlKXtsZXQgdD10aGlzLnN0b3JhZ2UuZ2V0QXBwc0xpc3QoKTtyZXR1cm4gdC5mb3JFYWNoKChyLG4pPT57ci5hcHBfaWQ9PWUmJnQuc3BsaWNlKG4pfSksdH11cGRhdGVBcHBzTGlzdEluU3RvcmFnZShlPVtdKXtmb3IobGV0IHQgb2YgZSl7bGV0IGU9dGhpcy5zdG9yYWdlLmdldEFwcCh0LmFwcF9pZCk7ZT8oZS5mcm9tX2FwcHNfbGlzdD10LmZyb21fYXBwc19saXN0LGUucGVybWlzc2lvbj10LnBlcm1pc3Npb24pOnRoaXMuYWRkTmV3QXBwVG9TdG9yYWdlKHQpfX1hc3luYyByZWZyZXNoQXBwcyhlPVtdKXtmb3IobGV0IHQgb2YgZSlpZih2b2lkIDAhPXQpdHJ5e2xldCBlPWF3YWl0IHRoaXMuZGF0YVNlcnZpY2UuZ2V0QXBwKHQpO2lmKGUpe2UuaXRlbXNfb2JqZWN0PXt9O2ZvcihsZXQgdD0wO3Q8ZS5pdGVtc19saXN0Lmxlbmd0aDt0Kyspe2UuaXRlbXNfb2JqZWN0W2UuaXRlbXNfbGlzdFt0XS5pdGVtX2lkXT17fTtmb3IobGV0IHI9MDtyPGUuaXRlbXNfbGlzdFt0XS5maWVsZHMubGVuZ3RoO3IrKyllLml0ZW1zX29iamVjdFtlLml0ZW1zX2xpc3RbdF0uaXRlbV9pZF1bZS5pdGVtc19saXN0W3RdLmZpZWxkc1tyXS5maWVsZF9pZF09ZS5pdGVtc19saXN0W3RdLmZpZWxkc1tyXX10aGlzLnVwZGF0ZUFwcEluU3RvcmFnZShlKSx0aGlzLnBpcGVTZXJ2aWNlLmVtaXQoXCJnaF9hcHBfdmlld3NfdXBkYXRlXCIse2FwcF9pZDplLmFwcF9pZH0sZS52aWV3c19saXN0KX19Y2F0Y2goZSl7Y29uc29sZS5sb2coZSl9Y29uc29sZS5sb2coXCJBcHBzIHJlZnJlc2hlZDogXCIsSlNPTi5zdHJpbmdpZnkoZSkpfWFzeW5jIHJlZnJlc2hBcHBzTGlzdCgpe2xldCBlPXRoaXMuZ2V0QXBwTGlzdEZyb21TdG9yYWdlKCksdD0oYXdhaXQgdGhpcy5nZXRBcHBMaXN0QXBpKCkpLm1hcCh0PT4oey4uLnQsLi4uZS5maW5kKGU9PmUuYXBwX2lkPT09dC5hcHBfaWQpfSkpO3RoaXMudXBkYXRlQXBwc0xpc3RJblN0b3JhZ2UodCksdGhpcy5waXBlU2VydmljZS5lbWl0KFwiZ2hfYXBwc19saXN0X3JlZnJlc2hlZFwiLHt9KX1hc3luYyBnZXRBcHBzTGlzdCgpe2xldCBlPXRoaXMuZ2V0QXBwTGlzdEZyb21TdG9yYWdlKCk7aWYoIXRoaXMuYXBwbGlzdFJlY2VpdmVkKXtsZXQgdD1hd2FpdCB0aGlzLmdldEFwcExpc3RBcGkoKTtpZighdClyZXR1cm4gbnVsbDt0aGlzLnVwZGF0ZUFwcHNMaXN0SW5TdG9yYWdlKHQpLHRoaXMuYXBwbGlzdFJlY2VpdmVkPSEwLGU9dH1yZXR1cm4gZX1hc3luYyBnZXRBcHBJbmZvKGUpe2xldCB0PWF3YWl0IHRoaXMuZ2V0QXBwc0xpc3QoKTtyZXR1cm4gdD90LmZpbmQodD0+dC5hcHBfaWQ9PWUpOm51bGx9YXN5bmMgZGVsZXRlQXBwKGUpe3JldHVybiBhd2FpdCB0aGlzLmRlbGV0ZUFwcEFwaShlKSx0aGlzLmRlbGV0aW5nQXBwRnJvbVN0b3JhZ2UoZSl9YXN5bmMgZ2V0QXBwKGUsdD0hMSl7aWYoIWUpcmV0dXJuIG51bGw7bGV0IHI9dGhpcy5nZXRBcHBGcm9tU3RvcmFnZShlKTtpZihyKXJldHVybiByO2lmKHRoaXMuYXBwUmVxdWVzdENhY2hlLmhhcyhlKSlyZXR1cm4gdGhpcy5hcHBSZXF1ZXN0Q2FjaGUuZ2V0KGUpO2xldCBuPXRoaXMsaT1uZXcgUHJvbWlzZShhc3luYyhyLGkpPT57dHJ5e2xldCBhPWF3YWl0IG4uZGF0YVNlcnZpY2UuZ2V0QXBwKGUpO2F8fGkoKTtsZXQgbz10P2E6ey4uLmEsaXRlbXNfbGlzdDphLml0ZW1zX2xpc3QuZmlsdGVyKGU9PiFlLnRyYXNoKX07bz10P286ey4uLm8sZmllbGRfbGlzdDpvLmZpZWxkX2xpc3QuZmlsdGVyKGU9PiFlLnRyYXNoKX0scihvKSxuLnNhdmVBcHBJblN0b3JhZ2Uobyksbi53cy5hZGRTdWJzY3JpcHRpb24oZSl9Y2F0Y2goZSl7aSgpfX0pO3JldHVybiBuLmFwcFJlcXVlc3RDYWNoZS5zZXQoZSxpKSxpfWFzeW5jIHVwZGF0ZUFwcChlKXtpZighZS52aWV3c19saXN0fHwhZS52aWV3c19saXN0Lmxlbmd0aHx8IWUuc2hvdyl7bGV0IHQ9YXdhaXQgdGhpcy5nZXRBcHAoZS5hcHBfaWQpO2Uudmlld3NfbGlzdCYmZS52aWV3c19saXN0Lmxlbmd0aHx8KGUudmlld3NfbGlzdD10LnZpZXdzX2xpc3QpLHZvaWQgMD09PWUuc2hvdyYmKGUuc2hvdz10LnNob3cpfWxldCB0PWF3YWl0IHRoaXMudXBkYXRlQXBwQXBpKGUpO3JldHVybiB0aGlzLnVwZGF0ZUFwcEZpZWxkc0FuZFZpZXdzKHQpLHR9YXN5bmMgdXBkYXRlQXBwSW5mbyhlPXt9KXtyZXR1cm4gdGhpcy5waXBlU2VydmljZS5lbWl0KFwiZ2hfYXBwX2luZm9fdXBkYXRlXCIse2FwcF9pZDplLmFwcF9pZH0sZSksdGhpcy51cGRhdGVBcHAoZSl9YXN5bmMgY3JlYXRlTmV3QXBwKGUpe2xldCB0PWF3YWl0IHRoaXMuY3JlYXRlTmV3QXBwQXBpKGUpO3JldHVybiB0Lml0ZW1zX29iamVjdD17fSx0aGlzLmFkZE5ld0FwcFRvU3RvcmFnZSh0KSx0fWFzeW5jIGdldEFwcFZpZXdzKGUpe2lmKGUpcmV0dXJuKGF3YWl0IHRoaXMuZ2V0QXBwKGUpKS52aWV3c19saXN0fWFzeW5jIGhhbmRsZUFwcENoYW5nZShlLHQscil7bGV0IG49dGhpcy51dGlsLmFyZVZpZXdMaXN0c0VxdWFsKHQudmlld3NfbGlzdCxyLnZpZXdzX2xpc3QpLGk9dGhpcy51dGlsLmFyZUZpZWxkTGlzdHNFcXVhbCh0LmZpZWxkX2xpc3Qsci5maWVsZF9saXN0KTsobnx8aSkmJnRoaXMudXBkYXRlQXBwRmllbGRzQW5kVmlld3Moe2lkOmUsdmlld3NfbGlzdDpyLnZpZXdzX2xpc3QsZmllbGRfbGlzdDpyLmZpZWxkX2xpc3R9KX1jbGVhckFwcFByb2Nlc3Nvcigpe3RoaXMuZ2V0QXBwTGlzdFByb21pc2VzPW51bGwsdGhpcy5nZXRBcHBQcm9taXNlcz17fSx0aGlzLmFwcGxpc3RSZWNlaXZlZD0hMX1hcHBMaXN0ZW5lcnMoKXt0aGlzLnBpcGVTZXJ2aWNlLm9uUm9vdChcImdoX2FwcF9nZXRcIix7fSxhc3luYyhlLHQpPT57aWYodCYmdC5hcHBfaWQpe2xldCBlPWF3YWl0IHRoaXMuZ2V0QXBwKHQuYXBwX2lkKTt0aGlzLnBpcGVTZXJ2aWNlLmVtaXQoXCJnaF9hcHBfZ2V0XCIsdCxlKX19KSx0aGlzLnBpcGVTZXJ2aWNlLm9uUm9vdChcImdoX2FwcHNfbGlzdF9nZXRcIix7fSxhc3luYyhlLHQpPT57bGV0IHI9YXdhaXQgdGhpcy5nZXRBcHBzTGlzdCgpO3RoaXMucGlwZVNlcnZpY2UuZW1pdChcImdoX2FwcHNfbGlzdF9nZXRcIix0LHIpfSksdGhpcy5waXBlU2VydmljZS5vblJvb3QoXCJnaF9kZWxldGVfYXBwXCIse30sYXN5bmMoZSx0KT0+e2xldCByPWF3YWl0IHRoaXMuZGVsZXRlQXBwKHQuYXBwX2lkKTt0aGlzLnBpcGVTZXJ2aWNlLmVtaXQoXCJnaF9hcHBzX2xpc3RfdXBkYXRlXCIse3JlY2lwaWVudDpcImFsbFwifSxyKX0pLHRoaXMucGlwZVNlcnZpY2Uub25Sb290KFwiZ2hfYXBwX3VwZGF0ZVwiLHt9LGFzeW5jKGUsdCk9Pnt0LmFwcC5pdGVtc19saXN0PVtdLHQuYXBwLmZpbGVfbGlzdD1bXTtsZXQgcj1hd2FpdCB0aGlzLnVwZGF0ZUFwcCh0LmFwcCk7dGhpcy5waXBlU2VydmljZS5lbWl0KFwiZ2hfYXBwX3ZpZXdzX3VwZGF0ZVwiLHthcHBfaWQ6ci5hcHBfaWR9LHIudmlld3NfbGlzdCk7bGV0IG49YXdhaXQgdGhpcy5nZXRBcHBzTGlzdCgpO3RoaXMucGlwZVNlcnZpY2UuZW1pdChcImdoX2FwcHNfbGlzdF91cGRhdGVcIix7cmVjaXBpZW50OlwiYWxsXCJ9LG4pLHIuZmllbGRfbGlzdC5mb3JFYWNoKGU9Pnt0aGlzLnBpcGVTZXJ2aWNlLmVtaXQoXCJnaF9tb2RlbF91cGRhdGVcIix7YXBwX2lkOnIuYXBwX2lkLGZpZWxkX2lkOmUuZmllbGRfaWR9LGUpfSl9KSx0aGlzLnBpcGVTZXJ2aWNlLm9uUm9vdChcImdoX2FwcF92aWV3X2dldFwiLHt9LGFzeW5jKGUsdCk9PntpZih0JiZ0LmFwcF9pZCl7bGV0IGU9YXdhaXQgdGhpcy5nZXRBcHAodC5hcHBfaWQpO2Uudmlld3NfbGlzdC5mb3JFYWNoKChyLG4pPT57ci52aWV3X2lkPT10LnZpZXdfaWQmJnRoaXMucGlwZVNlcnZpY2UuZW1pdChcImdoX2FwcF92aWV3X2dldFwiLHQsZS52aWV3c19saXN0W25dKX0pfX0pLHRoaXMucGlwZVNlcnZpY2Uub25Sb290KFwiZ2hfYXBwX2luZm9fZ2V0XCIse30sYXN5bmMoZSx0KT0+e2xldCByPWF3YWl0IHRoaXMuZ2V0QXBwSW5mbyh0LmFwcF9pZCk7ciYmdGhpcy5waXBlU2VydmljZS5lbWl0KFwiZ2hfYXBwX2luZm9fZ2V0XCIsdCxyKX0pLHRoaXMucGlwZVNlcnZpY2Uub25Sb290KFwiZ2hfYXBwX2luZm9fdXBkYXRlXCIse30sYXN5bmMoZSx0KT0+e2lmKHQmJnQuYXBwKXtsZXQgZT1hd2FpdCB0aGlzLnVwZGF0ZUFwcEluZm8odC5hcHApO3RoaXMucGlwZVNlcnZpY2UuZW1pdChcImdoX2FwcF9pbmZvX3VwZGF0ZVwiLHthcHBfaWQ6dC5hcHAuYXBwX2lkfSxlKX19KSx0aGlzLnBpcGVTZXJ2aWNlLm9uUm9vdChcImdoX2FwcF9jcmVhdGVcIix7fSxhc3luYyhlLHQpPT57YXdhaXQgdGhpcy5jcmVhdGVOZXdBcHAodC5hcHApO2xldCByPWF3YWl0IHRoaXMuZ2V0QXBwc0xpc3QoKTt0aGlzLnBpcGVTZXJ2aWNlLmVtaXQoXCJnaF9hcHBzX2xpc3RfdXBkYXRlXCIse3JlY2lwaWVudDpcImFsbFwifSxyKX0pLCQ1eG96Qi5JU19CUk9XU0VSX01BSU5fVEhSRUFEJiZ0aGlzLmFjdGl2YXRlU1cmJm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsYXN5bmMgZT0+e2lmKFwicmVmcmVzaCBhcHBcIj09PWUuZGF0YS50eXBlKXtsZXQgdD1hd2FpdCB0aGlzLmdldEFwcChlLmRhdGEucGF5bG9hZC5hcHBfaWQpO3QmJnRoaXMudXRpbC5jb21wYXJlQXBwc0l0ZW1zTGlzdHModC5pdGVtc19saXN0LGUuZGF0YS5wYXlsb2FkLml0ZW1zX2xpc3QuZmlsdGVyKGU9PiFlLnRyYXNoKSwoe2RpZmZfZmllbGRzX2l0ZW1zOnQsZGlmZl9maWVsZHNfaXRlbXNfSWRzOnIsZGlmZl9pdGVtczpuLG5ld0l0ZW1zOmksZGVsZXRlZEl0ZW1zOmF9KT0+eyhuLmxlbmd0aHx8aS5sZW5ndGh8fGEubGVuZ3RoKSYmKHRoaXMucGlwZVNlcnZpY2UuZW1pdChcImdoX2l0ZW1zX3VwZGF0ZVwiLHthcHBfaWQ6ZS5kYXRhLnBheWxvYWQuYXBwX2lkfSxlLmRhdGEucGF5bG9hZC5pdGVtc19saXN0LmZpbHRlcihlPT4hZS50cmFzaCkpLG4uZm9yRWFjaCh0PT50aGlzLnBpcGVTZXJ2aWNlLmVtaXQoXCJnaF9pdGVtX3VwZGF0ZVwiLHthcHBfaWQ6ZS5kYXRhLnBheWxvYWQuYXBwX2lkLGl0ZW1faWQ6dC5pdGVtX2lkfSx0KSkpLHIuZm9yRWFjaChyPT57bGV0IG49dFtyXTtuJiZuLmZvckVhY2godD0+e3RoaXMucGlwZVNlcnZpY2UuZW1pdChcImdoX3ZhbHVlX3VwZGF0ZVwiLHthcHBfaWQ6ZS5kYXRhLnBheWxvYWQuYXBwX2lkLGl0ZW1faWQ6cixmaWVsZF9pZDp0LmZpZWxkX2lkfSx0LmZpZWxkX3ZhbHVlKX0pfSl9KSxlLmRhdGEucGF5bG9hZC5pdGVtc19saXN0PWF3YWl0IHRoaXMudXRpbC5tZXJnZUNodW5rcyhbdCxlLmRhdGEucGF5bG9hZF0pLHRoaXMuc2F2ZUFwcEluU3RvcmFnZShlLmRhdGEucGF5bG9hZCl9fSl9fXZhciAkYWtYSzQ9cGFyY2VsUmVxdWlyZShcImFrWEs0XCIpO2Z1bmN0aW9uICQyZjllYzMwZTJmZDY5NWEzJGV4cG9ydCRmZDE2ZTdmM2RhNWMyOWU1KGUpe3JldHVybiBKU09OLnN0cmluZ2lmeShlKS5yZXBsYWNlKC9cXCt8JnwlL2csZT0+e3N3aXRjaChlKXtjYXNlXCIrXCI6cmV0dXJuXCIlMkJcIjtjYXNlXCImXCI6cmV0dXJuXCIlMjZcIjtjYXNlXCIlXCI6cmV0dXJuXCIlMjVcIn19KX1mdW5jdGlvbiAkMmY5ZWMzMGUyZmQ2OTVhMyRleHBvcnQkNDg4ZWRiYjkxZTRkMWYxNyhlPVtdKXtyZXR1cm4gZS5maWx0ZXIoZT0+bnVsbCE9ZS5maWVsZF92YWx1ZSl9ZnVuY3Rpb24gJDJmOWVjMzBlMmZkNjk1YTMkZXhwb3J0JDc3YmQ3MWFiNWNlMjBiM2QoZT17fSl7bGV0IHQ9T2JqZWN0LmVudHJpZXMoZSk7cmV0dXJuIHQubGVuZ3RoP2AmJHt0Lm1hcCgoW2UsdF0pPT5gJHtlfT0ke3R9YCkuam9pbihcIiZcIil9YDpcIlwifXZhciAkZWY1OWMxYTJkOTFiZGNkYyRleHBvcnRzPXt9LCRmMTFjZDUwOGUzZjJlOTRjJGV4cG9ydHM9e30sJDgyODg1OWRjOGM1OTI4ZGQkZXhwb3J0cz17fSwkODFmMTRmNjQ1NzY1ZDI3YiRleHBvcnRzPXt9OyQ4MWYxNGY2NDU3NjVkMjdiJGV4cG9ydHM9VHlwZUVycm9yO3ZhciAkNjEwYmNmNmFkODJjNGZkYiRleHBvcnRzPXt9LCQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRoYXNNYXA9XCJmdW5jdGlvblwiPT10eXBlb2YgTWFwJiZNYXAucHJvdG90eXBlLCQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRtYXBTaXplRGVzY3JpcHRvcj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yJiYkNjEwYmNmNmFkODJjNGZkYiR2YXIkaGFzTWFwP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTWFwLnByb3RvdHlwZSxcInNpemVcIik6bnVsbCwkNjEwYmNmNmFkODJjNGZkYiR2YXIkbWFwU2l6ZT0kNjEwYmNmNmFkODJjNGZkYiR2YXIkaGFzTWFwJiYkNjEwYmNmNmFkODJjNGZkYiR2YXIkbWFwU2l6ZURlc2NyaXB0b3ImJlwiZnVuY3Rpb25cIj09dHlwZW9mICQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRtYXBTaXplRGVzY3JpcHRvci5nZXQ/JDYxMGJjZjZhZDgyYzRmZGIkdmFyJG1hcFNpemVEZXNjcmlwdG9yLmdldDpudWxsLCQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRtYXBGb3JFYWNoPSQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRoYXNNYXAmJk1hcC5wcm90b3R5cGUuZm9yRWFjaCwkNjEwYmNmNmFkODJjNGZkYiR2YXIkaGFzU2V0PVwiZnVuY3Rpb25cIj09dHlwZW9mIFNldCYmU2V0LnByb3RvdHlwZSwkNjEwYmNmNmFkODJjNGZkYiR2YXIkc2V0U2l6ZURlc2NyaXB0b3I9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvciYmJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGhhc1NldD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFNldC5wcm90b3R5cGUsXCJzaXplXCIpOm51bGwsJDYxMGJjZjZhZDgyYzRmZGIkdmFyJHNldFNpemU9JDYxMGJjZjZhZDgyYzRmZGIkdmFyJGhhc1NldCYmJDYxMGJjZjZhZDgyYzRmZGIkdmFyJHNldFNpemVEZXNjcmlwdG9yJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiAkNjEwYmNmNmFkODJjNGZkYiR2YXIkc2V0U2l6ZURlc2NyaXB0b3IuZ2V0PyQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRzZXRTaXplRGVzY3JpcHRvci5nZXQ6bnVsbCwkNjEwYmNmNmFkODJjNGZkYiR2YXIkc2V0Rm9yRWFjaD0kNjEwYmNmNmFkODJjNGZkYiR2YXIkaGFzU2V0JiZTZXQucHJvdG90eXBlLmZvckVhY2gsJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGhhc1dlYWtNYXA9XCJmdW5jdGlvblwiPT10eXBlb2YgV2Vha01hcCYmV2Vha01hcC5wcm90b3R5cGUsJDYxMGJjZjZhZDgyYzRmZGIkdmFyJHdlYWtNYXBIYXM9JDYxMGJjZjZhZDgyYzRmZGIkdmFyJGhhc1dlYWtNYXA/V2Vha01hcC5wcm90b3R5cGUuaGFzOm51bGwsJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGhhc1dlYWtTZXQ9XCJmdW5jdGlvblwiPT10eXBlb2YgV2Vha1NldCYmV2Vha1NldC5wcm90b3R5cGUsJDYxMGJjZjZhZDgyYzRmZGIkdmFyJHdlYWtTZXRIYXM9JDYxMGJjZjZhZDgyYzRmZGIkdmFyJGhhc1dlYWtTZXQ/V2Vha1NldC5wcm90b3R5cGUuaGFzOm51bGwsJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGhhc1dlYWtSZWY9XCJmdW5jdGlvblwiPT10eXBlb2YgV2Vha1JlZiYmV2Vha1JlZi5wcm90b3R5cGUsJDYxMGJjZjZhZDgyYzRmZGIkdmFyJHdlYWtSZWZEZXJlZj0kNjEwYmNmNmFkODJjNGZkYiR2YXIkaGFzV2Vha1JlZj9XZWFrUmVmLnByb3RvdHlwZS5kZXJlZjpudWxsLCQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRib29sZWFuVmFsdWVPZj1Cb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLCQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRvYmplY3RUb1N0cmluZz1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLCQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRmdW5jdGlvblRvU3RyaW5nPUZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZywkNjEwYmNmNmFkODJjNGZkYiR2YXIkJG1hdGNoPVN0cmluZy5wcm90b3R5cGUubWF0Y2gsJDYxMGJjZjZhZDgyYzRmZGIkdmFyJCRzbGljZT1TdHJpbmcucHJvdG90eXBlLnNsaWNlLCQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciQkcmVwbGFjZT1TdHJpbmcucHJvdG90eXBlLnJlcGxhY2UsJDYxMGJjZjZhZDgyYzRmZGIkdmFyJCR0b1VwcGVyQ2FzZT1TdHJpbmcucHJvdG90eXBlLnRvVXBwZXJDYXNlLCQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciQkdG9Mb3dlckNhc2U9U3RyaW5nLnByb3RvdHlwZS50b0xvd2VyQ2FzZSwkNjEwYmNmNmFkODJjNGZkYiR2YXIkJHRlc3Q9UmVnRXhwLnByb3RvdHlwZS50ZXN0LCQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciQkY29uY2F0PUFycmF5LnByb3RvdHlwZS5jb25jYXQsJDYxMGJjZjZhZDgyYzRmZGIkdmFyJCRqb2luPUFycmF5LnByb3RvdHlwZS5qb2luLCQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciQkYXJyU2xpY2U9QXJyYXkucHJvdG90eXBlLnNsaWNlLCQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciQkZmxvb3I9TWF0aC5mbG9vciwkNjEwYmNmNmFkODJjNGZkYiR2YXIkYmlnSW50VmFsdWVPZj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBCaWdJbnQ/QmlnSW50LnByb3RvdHlwZS52YWx1ZU9mOm51bGwsJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGdPUFM9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scywkNjEwYmNmNmFkODJjNGZkYiR2YXIkc3ltVG9TdHJpbmc9XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP1N5bWJvbC5wcm90b3R5cGUudG9TdHJpbmc6bnVsbCwkNjEwYmNmNmFkODJjNGZkYiR2YXIkaGFzU2hhbW1lZFN5bWJvbHM9XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcIm9iamVjdFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yLCQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciR0b1N0cmluZ1RhZz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC50b1N0cmluZ1RhZyYmKHR5cGVvZiBTeW1ib2wudG9TdHJpbmdUYWc9PT0kNjEwYmNmNmFkODJjNGZkYiR2YXIkaGFzU2hhbW1lZFN5bWJvbHM/XCJvYmplY3RcIjpcInN5bWJvbFwiKT9TeW1ib2wudG9TdHJpbmdUYWc6bnVsbCwkNjEwYmNmNmFkODJjNGZkYiR2YXIkaXNFbnVtZXJhYmxlPU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUsJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGdQTz0oXCJmdW5jdGlvblwiPT10eXBlb2YgUmVmbGVjdD9SZWZsZWN0LmdldFByb3RvdHlwZU9mOk9iamVjdC5nZXRQcm90b3R5cGVPZil8fChbXS5fX3Byb3RvX189PT1BcnJheS5wcm90b3R5cGU/ZnVuY3Rpb24oZSl7cmV0dXJuIGUuX19wcm90b19ffTpudWxsKTtmdW5jdGlvbiAkNjEwYmNmNmFkODJjNGZkYiR2YXIkYWRkTnVtZXJpY1NlcGFyYXRvcihlLHQpe2lmKGU9PT0xLzB8fGU9PT0tMS8wfHxlIT1lfHxlJiZlPi0xZTMmJmU8MWUzfHwkNjEwYmNmNmFkODJjNGZkYiR2YXIkJHRlc3QuY2FsbCgvZS8sdCkpcmV0dXJuIHQ7dmFyIHI9L1swLTldKD89KD86WzAtOV17M30pKyg/IVswLTldKSkvZztpZihcIm51bWJlclwiPT10eXBlb2YgZSl7dmFyIG49ZTwwPy0kNjEwYmNmNmFkODJjNGZkYiR2YXIkJGZsb29yKC1lKTokNjEwYmNmNmFkODJjNGZkYiR2YXIkJGZsb29yKGUpO2lmKG4hPT1lKXt2YXIgaT1TdHJpbmcobiksYT0kNjEwYmNmNmFkODJjNGZkYiR2YXIkJHNsaWNlLmNhbGwodCxpLmxlbmd0aCsxKTtyZXR1cm4gJDYxMGJjZjZhZDgyYzRmZGIkdmFyJCRyZXBsYWNlLmNhbGwoaSxyLFwiJCZfXCIpK1wiLlwiKyQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciQkcmVwbGFjZS5jYWxsKCQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciQkcmVwbGFjZS5jYWxsKGEsLyhbMC05XXszfSkvZyxcIiQmX1wiKSwvXyQvLFwiXCIpfX1yZXR1cm4gJDYxMGJjZjZhZDgyYzRmZGIkdmFyJCRyZXBsYWNlLmNhbGwodCxyLFwiJCZfXCIpfXZhciAkYzEzMWE3MDA4MTlmNzc0NCRleHBvcnRzPXt9LCQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRpbnNwZWN0Q3VzdG9tPSRjMTMxYTcwMDgxOWY3NzQ0JGV4cG9ydHMuY3VzdG9tLCQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRpbnNwZWN0U3ltYm9sPSQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRpc1N5bWJvbCgkNjEwYmNmNmFkODJjNGZkYiR2YXIkaW5zcGVjdEN1c3RvbSk/JDYxMGJjZjZhZDgyYzRmZGIkdmFyJGluc3BlY3RDdXN0b206bnVsbCwkNjEwYmNmNmFkODJjNGZkYiR2YXIkcXVvdGVzPXtfX3Byb3RvX186bnVsbCxkb3VibGU6J1wiJyxzaW5nbGU6XCInXCJ9LCQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRxdW90ZVJFcz17X19wcm90b19fOm51bGwsZG91YmxlOi8oW1wiXFxcXF0pL2csc2luZ2xlOi8oWydcXFxcXSkvZ307ZnVuY3Rpb24gJDYxMGJjZjZhZDgyYzRmZGIkdmFyJHdyYXBRdW90ZXMoZSx0LHIpe3ZhciBuPSQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRxdW90ZXNbci5xdW90ZVN0eWxlfHx0XTtyZXR1cm4gbitlK259ZnVuY3Rpb24gJDYxMGJjZjZhZDgyYzRmZGIkdmFyJHF1b3RlKGUpe3JldHVybiAkNjEwYmNmNmFkODJjNGZkYiR2YXIkJHJlcGxhY2UuY2FsbChTdHJpbmcoZSksL1wiL2csXCImcXVvdDtcIil9ZnVuY3Rpb24gJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGNhblRydXN0VG9TdHJpbmcoZSl7cmV0dXJuISQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciR0b1N0cmluZ1RhZ3x8IShcIm9iamVjdFwiPT10eXBlb2YgZSYmKCQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciR0b1N0cmluZ1RhZyBpbiBlfHx2b2lkIDAhPT1lWyQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciR0b1N0cmluZ1RhZ10pKX1mdW5jdGlvbiAkNjEwYmNmNmFkODJjNGZkYiR2YXIkaXNBcnJheShlKXtyZXR1cm5cIltvYmplY3QgQXJyYXldXCI9PT0kNjEwYmNmNmFkODJjNGZkYiR2YXIkdG9TdHIoZSkmJiQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRjYW5UcnVzdFRvU3RyaW5nKGUpfWZ1bmN0aW9uICQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRpc0RhdGUoZSl7cmV0dXJuXCJbb2JqZWN0IERhdGVdXCI9PT0kNjEwYmNmNmFkODJjNGZkYiR2YXIkdG9TdHIoZSkmJiQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRjYW5UcnVzdFRvU3RyaW5nKGUpfWZ1bmN0aW9uICQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRpc1JlZ0V4cChlKXtyZXR1cm5cIltvYmplY3QgUmVnRXhwXVwiPT09JDYxMGJjZjZhZDgyYzRmZGIkdmFyJHRvU3RyKGUpJiYkNjEwYmNmNmFkODJjNGZkYiR2YXIkY2FuVHJ1c3RUb1N0cmluZyhlKX1mdW5jdGlvbiAkNjEwYmNmNmFkODJjNGZkYiR2YXIkaXNFcnJvcihlKXtyZXR1cm5cIltvYmplY3QgRXJyb3JdXCI9PT0kNjEwYmNmNmFkODJjNGZkYiR2YXIkdG9TdHIoZSkmJiQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRjYW5UcnVzdFRvU3RyaW5nKGUpfWZ1bmN0aW9uICQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRpc1N0cmluZyhlKXtyZXR1cm5cIltvYmplY3QgU3RyaW5nXVwiPT09JDYxMGJjZjZhZDgyYzRmZGIkdmFyJHRvU3RyKGUpJiYkNjEwYmNmNmFkODJjNGZkYiR2YXIkY2FuVHJ1c3RUb1N0cmluZyhlKX1mdW5jdGlvbiAkNjEwYmNmNmFkODJjNGZkYiR2YXIkaXNOdW1iZXIoZSl7cmV0dXJuXCJbb2JqZWN0IE51bWJlcl1cIj09PSQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciR0b1N0cihlKSYmJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGNhblRydXN0VG9TdHJpbmcoZSl9ZnVuY3Rpb24gJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGlzQm9vbGVhbihlKXtyZXR1cm5cIltvYmplY3QgQm9vbGVhbl1cIj09PSQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciR0b1N0cihlKSYmJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGNhblRydXN0VG9TdHJpbmcoZSl9ZnVuY3Rpb24gJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGlzU3ltYm9sKGUpe2lmKCQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRoYXNTaGFtbWVkU3ltYm9scylyZXR1cm4gZSYmXCJvYmplY3RcIj09dHlwZW9mIGUmJmUgaW5zdGFuY2VvZiBTeW1ib2w7aWYoXCJzeW1ib2xcIj09dHlwZW9mIGUpcmV0dXJuITA7aWYoIWV8fFwib2JqZWN0XCIhPXR5cGVvZiBlfHwhJDYxMGJjZjZhZDgyYzRmZGIkdmFyJHN5bVRvU3RyaW5nKXJldHVybiExO3RyeXtyZXR1cm4gJDYxMGJjZjZhZDgyYzRmZGIkdmFyJHN5bVRvU3RyaW5nLmNhbGwoZSksITB9Y2F0Y2goZSl7fXJldHVybiExfWZ1bmN0aW9uICQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRpc0JpZ0ludChlKXtpZighZXx8XCJvYmplY3RcIiE9dHlwZW9mIGV8fCEkNjEwYmNmNmFkODJjNGZkYiR2YXIkYmlnSW50VmFsdWVPZilyZXR1cm4hMTt0cnl7cmV0dXJuICQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRiaWdJbnRWYWx1ZU9mLmNhbGwoZSksITB9Y2F0Y2goZSl7fXJldHVybiExfSQ2MTBiY2Y2YWQ4MmM0ZmRiJGV4cG9ydHM9ZnVuY3Rpb24gZSh0LHIsbixpKXt2YXIgYT1yfHx7fTtpZigkNjEwYmNmNmFkODJjNGZkYiR2YXIkaGFzKGEsXCJxdW90ZVN0eWxlXCIpJiYhJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGhhcygkNjEwYmNmNmFkODJjNGZkYiR2YXIkcXVvdGVzLGEucXVvdGVTdHlsZSkpdGhyb3cgVHlwZUVycm9yKCdvcHRpb24gXCJxdW90ZVN0eWxlXCIgbXVzdCBiZSBcInNpbmdsZVwiIG9yIFwiZG91YmxlXCInKTtpZigkNjEwYmNmNmFkODJjNGZkYiR2YXIkaGFzKGEsXCJtYXhTdHJpbmdMZW5ndGhcIikmJihcIm51bWJlclwiPT10eXBlb2YgYS5tYXhTdHJpbmdMZW5ndGg/YS5tYXhTdHJpbmdMZW5ndGg8MCYmYS5tYXhTdHJpbmdMZW5ndGghPT0xLzA6bnVsbCE9PWEubWF4U3RyaW5nTGVuZ3RoKSl0aHJvdyBUeXBlRXJyb3IoJ29wdGlvbiBcIm1heFN0cmluZ0xlbmd0aFwiLCBpZiBwcm92aWRlZCwgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIsIEluZmluaXR5LCBvciBgbnVsbGAnKTt2YXIgbz0hJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGhhcyhhLFwiY3VzdG9tSW5zcGVjdFwiKXx8YS5jdXN0b21JbnNwZWN0O2lmKFwiYm9vbGVhblwiIT10eXBlb2YgbyYmXCJzeW1ib2xcIiE9PW8pdGhyb3cgVHlwZUVycm9yKFwib3B0aW9uIFxcXCJjdXN0b21JbnNwZWN0XFxcIiwgaWYgcHJvdmlkZWQsIG11c3QgYmUgYHRydWVgLCBgZmFsc2VgLCBvciBgJ3N5bWJvbCdgXCIpO2lmKCQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRoYXMoYSxcImluZGVudFwiKSYmbnVsbCE9PWEuaW5kZW50JiZcIlx0XCIhPT1hLmluZGVudCYmIShwYXJzZUludChhLmluZGVudCwxMCk9PT1hLmluZGVudCYmYS5pbmRlbnQ+MCkpdGhyb3cgVHlwZUVycm9yKCdvcHRpb24gXCJpbmRlbnRcIiBtdXN0IGJlIFwiXFxcXHRcIiwgYW4gaW50ZWdlciA+IDAsIG9yIGBudWxsYCcpO2lmKCQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRoYXMoYSxcIm51bWVyaWNTZXBhcmF0b3JcIikmJlwiYm9vbGVhblwiIT10eXBlb2YgYS5udW1lcmljU2VwYXJhdG9yKXRocm93IFR5cGVFcnJvcignb3B0aW9uIFwibnVtZXJpY1NlcGFyYXRvclwiLCBpZiBwcm92aWRlZCwgbXVzdCBiZSBgdHJ1ZWAgb3IgYGZhbHNlYCcpO3ZhciBzPWEubnVtZXJpY1NlcGFyYXRvcjtpZih2b2lkIDA9PT10KXJldHVyblwidW5kZWZpbmVkXCI7aWYobnVsbD09PXQpcmV0dXJuXCJudWxsXCI7aWYoXCJib29sZWFuXCI9PXR5cGVvZiB0KXJldHVybiB0P1widHJ1ZVwiOlwiZmFsc2VcIjtpZihcInN0cmluZ1wiPT10eXBlb2YgdClyZXR1cm4gJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGluc3BlY3RTdHJpbmcodCxhKTtpZihcIm51bWJlclwiPT10eXBlb2YgdCl7aWYoMD09PXQpcmV0dXJuIDEvMC90PjA/XCIwXCI6XCItMFwiO3ZhciBsPVN0cmluZyh0KTtyZXR1cm4gcz8kNjEwYmNmNmFkODJjNGZkYiR2YXIkYWRkTnVtZXJpY1NlcGFyYXRvcih0LGwpOmx9aWYoXCJiaWdpbnRcIj09dHlwZW9mIHQpe3ZhciB1PVN0cmluZyh0KStcIm5cIjtyZXR1cm4gcz8kNjEwYmNmNmFkODJjNGZkYiR2YXIkYWRkTnVtZXJpY1NlcGFyYXRvcih0LHUpOnV9dmFyIGM9dm9pZCAwPT09YS5kZXB0aD81OmEuZGVwdGg7aWYodm9pZCAwPT09biYmKG49MCksbj49YyYmYz4wJiZcIm9iamVjdFwiPT10eXBlb2YgdClyZXR1cm4gJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGlzQXJyYXkodCk/XCJbQXJyYXldXCI6XCJbT2JqZWN0XVwiO3ZhciBwPSQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRnZXRJbmRlbnQoYSxuKTtpZih2b2lkIDA9PT1pKWk9W107ZWxzZSBpZigkNjEwYmNmNmFkODJjNGZkYiR2YXIkaW5kZXhPZihpLHQpPj0wKXJldHVyblwiW0NpcmN1bGFyXVwiO2Z1bmN0aW9uIGQodCxyLG8pe2lmKHImJihpPSQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciQkYXJyU2xpY2UuY2FsbChpKSkucHVzaChyKSxvKXt2YXIgcz17ZGVwdGg6YS5kZXB0aH07cmV0dXJuICQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRoYXMoYSxcInF1b3RlU3R5bGVcIikmJihzLnF1b3RlU3R5bGU9YS5xdW90ZVN0eWxlKSxlKHQscyxuKzEsaSl9cmV0dXJuIGUodCxhLG4rMSxpKX1pZihcImZ1bmN0aW9uXCI9PXR5cGVvZiB0JiYhJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGlzUmVnRXhwKHQpKXt2YXIgaD0kNjEwYmNmNmFkODJjNGZkYiR2YXIkbmFtZU9mKHQpLGY9JDYxMGJjZjZhZDgyYzRmZGIkdmFyJGFyck9iaktleXModCxkKTtyZXR1cm5cIltGdW5jdGlvblwiKyhoP1wiOiBcIitoOlwiIChhbm9ueW1vdXMpXCIpK1wiXVwiKyhmLmxlbmd0aD4wP1wiIHsgXCIrJDYxMGJjZjZhZDgyYzRmZGIkdmFyJCRqb2luLmNhbGwoZixcIiwgXCIpK1wiIH1cIjpcIlwiKX1pZigkNjEwYmNmNmFkODJjNGZkYiR2YXIkaXNTeW1ib2wodCkpe3ZhciBtPSQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRoYXNTaGFtbWVkU3ltYm9scz8kNjEwYmNmNmFkODJjNGZkYiR2YXIkJHJlcGxhY2UuY2FsbChTdHJpbmcodCksL14oU3ltYm9sXFwoLipcXCkpX1teKV0qJC8sXCIkMVwiKTokNjEwYmNmNmFkODJjNGZkYiR2YXIkc3ltVG9TdHJpbmcuY2FsbCh0KTtyZXR1cm5cIm9iamVjdFwiIT10eXBlb2YgdHx8JDYxMGJjZjZhZDgyYzRmZGIkdmFyJGhhc1NoYW1tZWRTeW1ib2xzP206JDYxMGJjZjZhZDgyYzRmZGIkdmFyJG1hcmtCb3hlZChtKX1pZigkNjEwYmNmNmFkODJjNGZkYiR2YXIkaXNFbGVtZW50KHQpKXtmb3IodmFyIGc9XCI8XCIrJDYxMGJjZjZhZDgyYzRmZGIkdmFyJCR0b0xvd2VyQ2FzZS5jYWxsKFN0cmluZyh0Lm5vZGVOYW1lKSkseT10LmF0dHJpYnV0ZXN8fFtdLF89MDtfPHkubGVuZ3RoO18rKylnKz1cIiBcIit5W19dLm5hbWUrXCI9XCIrJDYxMGJjZjZhZDgyYzRmZGIkdmFyJHdyYXBRdW90ZXMoJDYxMGJjZjZhZDgyYzRmZGIkdmFyJHF1b3RlKHlbX10udmFsdWUpLFwiZG91YmxlXCIsYSk7cmV0dXJuIGcrPVwiPlwiLHQuY2hpbGROb2RlcyYmdC5jaGlsZE5vZGVzLmxlbmd0aCYmKGcrPVwiLi4uXCIpLGcrPVwiPC9cIiskNjEwYmNmNmFkODJjNGZkYiR2YXIkJHRvTG93ZXJDYXNlLmNhbGwoU3RyaW5nKHQubm9kZU5hbWUpKStcIj5cIn1pZigkNjEwYmNmNmFkODJjNGZkYiR2YXIkaXNBcnJheSh0KSl7aWYoMD09PXQubGVuZ3RoKXJldHVyblwiW11cIjt2YXIgdj0kNjEwYmNmNmFkODJjNGZkYiR2YXIkYXJyT2JqS2V5cyh0LGQpO3JldHVybiBwJiYhJDYxMGJjZjZhZDgyYzRmZGIkdmFyJHNpbmdsZUxpbmVWYWx1ZXModik/XCJbXCIrJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGluZGVudGVkSm9pbih2LHApK1wiXVwiOlwiWyBcIiskNjEwYmNmNmFkODJjNGZkYiR2YXIkJGpvaW4uY2FsbCh2LFwiLCBcIikrXCIgXVwifWlmKCQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRpc0Vycm9yKHQpKXt2YXIgYj0kNjEwYmNmNmFkODJjNGZkYiR2YXIkYXJyT2JqS2V5cyh0LGQpO3JldHVyblwiY2F1c2VcImluIEVycm9yLnByb3RvdHlwZXx8IShcImNhdXNlXCJpbiB0KXx8JDYxMGJjZjZhZDgyYzRmZGIkdmFyJGlzRW51bWVyYWJsZS5jYWxsKHQsXCJjYXVzZVwiKT8wPT09Yi5sZW5ndGg/XCJbXCIrU3RyaW5nKHQpK1wiXVwiOlwieyBbXCIrU3RyaW5nKHQpK1wiXSBcIiskNjEwYmNmNmFkODJjNGZkYiR2YXIkJGpvaW4uY2FsbChiLFwiLCBcIikrXCIgfVwiOlwieyBbXCIrU3RyaW5nKHQpK1wiXSBcIiskNjEwYmNmNmFkODJjNGZkYiR2YXIkJGpvaW4uY2FsbCgkNjEwYmNmNmFkODJjNGZkYiR2YXIkJGNvbmNhdC5jYWxsKFwiW2NhdXNlXTogXCIrZCh0LmNhdXNlKSxiKSxcIiwgXCIpK1wiIH1cIn1pZihcIm9iamVjdFwiPT10eXBlb2YgdCYmbyl7aWYoJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGluc3BlY3RTeW1ib2wmJlwiZnVuY3Rpb25cIj09dHlwZW9mIHRbJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGluc3BlY3RTeW1ib2xdJiYkYzEzMWE3MDA4MTlmNzc0NCRleHBvcnRzKXJldHVybiAkYzEzMWE3MDA4MTlmNzc0NCRleHBvcnRzKHQse2RlcHRoOmMtbn0pO2lmKFwic3ltYm9sXCIhPT1vJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiB0Lmluc3BlY3QpcmV0dXJuIHQuaW5zcGVjdCgpfWlmKCQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRpc01hcCh0KSl7dmFyIHc9W107cmV0dXJuICQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRtYXBGb3JFYWNoJiYkNjEwYmNmNmFkODJjNGZkYiR2YXIkbWFwRm9yRWFjaC5jYWxsKHQsZnVuY3Rpb24oZSxyKXt3LnB1c2goZChyLHQsITApK1wiID0+IFwiK2QoZSx0KSl9KSwkNjEwYmNmNmFkODJjNGZkYiR2YXIkY29sbGVjdGlvbk9mKFwiTWFwXCIsJDYxMGJjZjZhZDgyYzRmZGIkdmFyJG1hcFNpemUuY2FsbCh0KSx3LHApfWlmKCQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRpc1NldCh0KSl7dmFyIFM9W107cmV0dXJuICQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRzZXRGb3JFYWNoJiYkNjEwYmNmNmFkODJjNGZkYiR2YXIkc2V0Rm9yRWFjaC5jYWxsKHQsZnVuY3Rpb24oZSl7Uy5wdXNoKGQoZSx0KSl9KSwkNjEwYmNmNmFkODJjNGZkYiR2YXIkY29sbGVjdGlvbk9mKFwiU2V0XCIsJDYxMGJjZjZhZDgyYzRmZGIkdmFyJHNldFNpemUuY2FsbCh0KSxTLHApfWlmKCQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRpc1dlYWtNYXAodCkpcmV0dXJuICQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciR3ZWFrQ29sbGVjdGlvbk9mKFwiV2Vha01hcFwiKTtpZigkNjEwYmNmNmFkODJjNGZkYiR2YXIkaXNXZWFrU2V0KHQpKXJldHVybiAkNjEwYmNmNmFkODJjNGZkYiR2YXIkd2Vha0NvbGxlY3Rpb25PZihcIldlYWtTZXRcIik7aWYoJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGlzV2Vha1JlZih0KSlyZXR1cm4gJDYxMGJjZjZhZDgyYzRmZGIkdmFyJHdlYWtDb2xsZWN0aW9uT2YoXCJXZWFrUmVmXCIpO2lmKCQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRpc051bWJlcih0KSlyZXR1cm4gJDYxMGJjZjZhZDgyYzRmZGIkdmFyJG1hcmtCb3hlZChkKE51bWJlcih0KSkpO2lmKCQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRpc0JpZ0ludCh0KSlyZXR1cm4gJDYxMGJjZjZhZDgyYzRmZGIkdmFyJG1hcmtCb3hlZChkKCQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRiaWdJbnRWYWx1ZU9mLmNhbGwodCkpKTtpZigkNjEwYmNmNmFkODJjNGZkYiR2YXIkaXNCb29sZWFuKHQpKXJldHVybiAkNjEwYmNmNmFkODJjNGZkYiR2YXIkbWFya0JveGVkKCQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRib29sZWFuVmFsdWVPZi5jYWxsKHQpKTtpZigkNjEwYmNmNmFkODJjNGZkYiR2YXIkaXNTdHJpbmcodCkpcmV0dXJuICQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRtYXJrQm94ZWQoZChTdHJpbmcodCkpKTtpZihcInVuZGVmaW5lZFwiIT10eXBlb2Ygd2luZG93JiZ0PT09d2luZG93KXJldHVyblwieyBbb2JqZWN0IFdpbmRvd10gfVwiO2lmKFwidW5kZWZpbmVkXCIhPXR5cGVvZiBnbG9iYWxUaGlzJiZ0PT09Z2xvYmFsVGhpc3x8dm9pZCAwIT09JHBhcmNlbCRnbG9iYWwmJnQ9PT0kcGFyY2VsJGdsb2JhbClyZXR1cm5cInsgW29iamVjdCBnbG9iYWxUaGlzXSB9XCI7aWYoISQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRpc0RhdGUodCkmJiEkNjEwYmNmNmFkODJjNGZkYiR2YXIkaXNSZWdFeHAodCkpe3ZhciBFPSQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRhcnJPYmpLZXlzKHQsZCksQT0kNjEwYmNmNmFkODJjNGZkYiR2YXIkZ1BPPyQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRnUE8odCk9PT1PYmplY3QucHJvdG90eXBlOnQgaW5zdGFuY2VvZiBPYmplY3R8fHQuY29uc3RydWN0b3I9PT1PYmplY3QseD10IGluc3RhbmNlb2YgT2JqZWN0P1wiXCI6XCJudWxsIHByb3RvdHlwZVwiLGs9IUEmJiQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciR0b1N0cmluZ1RhZyYmT2JqZWN0KHQpPT09dCYmJDYxMGJjZjZhZDgyYzRmZGIkdmFyJHRvU3RyaW5nVGFnIGluIHQ/JDYxMGJjZjZhZDgyYzRmZGIkdmFyJCRzbGljZS5jYWxsKCQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciR0b1N0cih0KSw4LC0xKTp4P1wiT2JqZWN0XCI6XCJcIixJPShBfHxcImZ1bmN0aW9uXCIhPXR5cGVvZiB0LmNvbnN0cnVjdG9yP1wiXCI6dC5jb25zdHJ1Y3Rvci5uYW1lP3QuY29uc3RydWN0b3IubmFtZStcIiBcIjpcIlwiKSsoa3x8eD9cIltcIiskNjEwYmNmNmFkODJjNGZkYiR2YXIkJGpvaW4uY2FsbCgkNjEwYmNmNmFkODJjNGZkYiR2YXIkJGNvbmNhdC5jYWxsKFtdLGt8fFtdLHh8fFtdKSxcIjogXCIpK1wiXSBcIjpcIlwiKTtyZXR1cm4gMD09PUUubGVuZ3RoP0krXCJ7fVwiOnA/SStcIntcIiskNjEwYmNmNmFkODJjNGZkYiR2YXIkaW5kZW50ZWRKb2luKEUscCkrXCJ9XCI6SStcInsgXCIrJDYxMGJjZjZhZDgyYzRmZGIkdmFyJCRqb2luLmNhbGwoRSxcIiwgXCIpK1wiIH1cIn1yZXR1cm4gU3RyaW5nKHQpfTt2YXIgJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGhhc093bj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5fHxmdW5jdGlvbihlKXtyZXR1cm4gZSBpbiB0aGlzfTtmdW5jdGlvbiAkNjEwYmNmNmFkODJjNGZkYiR2YXIkaGFzKGUsdCl7cmV0dXJuICQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRoYXNPd24uY2FsbChlLHQpfWZ1bmN0aW9uICQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciR0b1N0cihlKXtyZXR1cm4gJDYxMGJjZjZhZDgyYzRmZGIkdmFyJG9iamVjdFRvU3RyaW5nLmNhbGwoZSl9ZnVuY3Rpb24gJDYxMGJjZjZhZDgyYzRmZGIkdmFyJG5hbWVPZihlKXtpZihlLm5hbWUpcmV0dXJuIGUubmFtZTt2YXIgdD0kNjEwYmNmNmFkODJjNGZkYiR2YXIkJG1hdGNoLmNhbGwoJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGZ1bmN0aW9uVG9TdHJpbmcuY2FsbChlKSwvXmZ1bmN0aW9uXFxzKihbXFx3JF0rKS8pO3JldHVybiB0P3RbMV06bnVsbH1mdW5jdGlvbiAkNjEwYmNmNmFkODJjNGZkYiR2YXIkaW5kZXhPZihlLHQpe2lmKGUuaW5kZXhPZilyZXR1cm4gZS5pbmRleE9mKHQpO2Zvcih2YXIgcj0wLG49ZS5sZW5ndGg7cjxuO3IrKylpZihlW3JdPT09dClyZXR1cm4gcjtyZXR1cm4gLTF9ZnVuY3Rpb24gJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGlzTWFwKGUpe2lmKCEkNjEwYmNmNmFkODJjNGZkYiR2YXIkbWFwU2l6ZXx8IWV8fFwib2JqZWN0XCIhPXR5cGVvZiBlKXJldHVybiExO3RyeXskNjEwYmNmNmFkODJjNGZkYiR2YXIkbWFwU2l6ZS5jYWxsKGUpO3RyeXskNjEwYmNmNmFkODJjNGZkYiR2YXIkc2V0U2l6ZS5jYWxsKGUpfWNhdGNoKGUpe3JldHVybiEwfXJldHVybiBlIGluc3RhbmNlb2YgTWFwfWNhdGNoKGUpe31yZXR1cm4hMX1mdW5jdGlvbiAkNjEwYmNmNmFkODJjNGZkYiR2YXIkaXNXZWFrTWFwKGUpe2lmKCEkNjEwYmNmNmFkODJjNGZkYiR2YXIkd2Vha01hcEhhc3x8IWV8fFwib2JqZWN0XCIhPXR5cGVvZiBlKXJldHVybiExO3RyeXskNjEwYmNmNmFkODJjNGZkYiR2YXIkd2Vha01hcEhhcy5jYWxsKGUsJDYxMGJjZjZhZDgyYzRmZGIkdmFyJHdlYWtNYXBIYXMpO3RyeXskNjEwYmNmNmFkODJjNGZkYiR2YXIkd2Vha1NldEhhcy5jYWxsKGUsJDYxMGJjZjZhZDgyYzRmZGIkdmFyJHdlYWtTZXRIYXMpfWNhdGNoKGUpe3JldHVybiEwfXJldHVybiBlIGluc3RhbmNlb2YgV2Vha01hcH1jYXRjaChlKXt9cmV0dXJuITF9ZnVuY3Rpb24gJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGlzV2Vha1JlZihlKXtpZighJDYxMGJjZjZhZDgyYzRmZGIkdmFyJHdlYWtSZWZEZXJlZnx8IWV8fFwib2JqZWN0XCIhPXR5cGVvZiBlKXJldHVybiExO3RyeXtyZXR1cm4gJDYxMGJjZjZhZDgyYzRmZGIkdmFyJHdlYWtSZWZEZXJlZi5jYWxsKGUpLCEwfWNhdGNoKGUpe31yZXR1cm4hMX1mdW5jdGlvbiAkNjEwYmNmNmFkODJjNGZkYiR2YXIkaXNTZXQoZSl7aWYoISQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRzZXRTaXplfHwhZXx8XCJvYmplY3RcIiE9dHlwZW9mIGUpcmV0dXJuITE7dHJ5eyQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRzZXRTaXplLmNhbGwoZSk7dHJ5eyQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRtYXBTaXplLmNhbGwoZSl9Y2F0Y2goZSl7cmV0dXJuITB9cmV0dXJuIGUgaW5zdGFuY2VvZiBTZXR9Y2F0Y2goZSl7fXJldHVybiExfWZ1bmN0aW9uICQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRpc1dlYWtTZXQoZSl7aWYoISQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciR3ZWFrU2V0SGFzfHwhZXx8XCJvYmplY3RcIiE9dHlwZW9mIGUpcmV0dXJuITE7dHJ5eyQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciR3ZWFrU2V0SGFzLmNhbGwoZSwkNjEwYmNmNmFkODJjNGZkYiR2YXIkd2Vha1NldEhhcyk7dHJ5eyQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciR3ZWFrTWFwSGFzLmNhbGwoZSwkNjEwYmNmNmFkODJjNGZkYiR2YXIkd2Vha01hcEhhcyl9Y2F0Y2goZSl7cmV0dXJuITB9cmV0dXJuIGUgaW5zdGFuY2VvZiBXZWFrU2V0fWNhdGNoKGUpe31yZXR1cm4hMX1mdW5jdGlvbiAkNjEwYmNmNmFkODJjNGZkYiR2YXIkaXNFbGVtZW50KGUpe3JldHVybiEhZSYmXCJvYmplY3RcIj09dHlwZW9mIGUmJighIShcInVuZGVmaW5lZFwiIT10eXBlb2YgSFRNTEVsZW1lbnQmJmUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCl8fFwic3RyaW5nXCI9PXR5cGVvZiBlLm5vZGVOYW1lJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBlLmdldEF0dHJpYnV0ZSl9ZnVuY3Rpb24gJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGluc3BlY3RTdHJpbmcoZSx0KXtpZihlLmxlbmd0aD50Lm1heFN0cmluZ0xlbmd0aCl7dmFyIHI9ZS5sZW5ndGgtdC5tYXhTdHJpbmdMZW5ndGgsbj1cIi4uLiBcIityK1wiIG1vcmUgY2hhcmFjdGVyXCIrKHI+MT9cInNcIjpcIlwiKTtyZXR1cm4gJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGluc3BlY3RTdHJpbmcoJDYxMGJjZjZhZDgyYzRmZGIkdmFyJCRzbGljZS5jYWxsKGUsMCx0Lm1heFN0cmluZ0xlbmd0aCksdCkrbn12YXIgaT0kNjEwYmNmNmFkODJjNGZkYiR2YXIkcXVvdGVSRXNbdC5xdW90ZVN0eWxlfHxcInNpbmdsZVwiXTtyZXR1cm4gaS5sYXN0SW5kZXg9MCwkNjEwYmNmNmFkODJjNGZkYiR2YXIkd3JhcFF1b3RlcygkNjEwYmNmNmFkODJjNGZkYiR2YXIkJHJlcGxhY2UuY2FsbCgkNjEwYmNmNmFkODJjNGZkYiR2YXIkJHJlcGxhY2UuY2FsbChlLGksXCJcXFxcJDFcIiksL1tcXHgwMC1cXHgxZl0vZywkNjEwYmNmNmFkODJjNGZkYiR2YXIkbG93Ynl0ZSksXCJzaW5nbGVcIix0KX1mdW5jdGlvbiAkNjEwYmNmNmFkODJjNGZkYiR2YXIkbG93Ynl0ZShlKXt2YXIgdD1lLmNoYXJDb2RlQXQoMCkscj17ODpcImJcIiw5OlwidFwiLDEwOlwiblwiLDEyOlwiZlwiLDEzOlwiclwifVt0XTtyZXR1cm4gcj9cIlxcXFxcIityOlwiXFxcXHhcIisodDwxNj9cIjBcIjpcIlwiKSskNjEwYmNmNmFkODJjNGZkYiR2YXIkJHRvVXBwZXJDYXNlLmNhbGwodC50b1N0cmluZygxNikpfWZ1bmN0aW9uICQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRtYXJrQm94ZWQoZSl7cmV0dXJuXCJPYmplY3QoXCIrZStcIilcIn1mdW5jdGlvbiAkNjEwYmNmNmFkODJjNGZkYiR2YXIkd2Vha0NvbGxlY3Rpb25PZihlKXtyZXR1cm4gZStcIiB7ID8gfVwifWZ1bmN0aW9uICQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRjb2xsZWN0aW9uT2YoZSx0LHIsbil7cmV0dXJuIGUrXCIgKFwiK3QrXCIpIHtcIisobj8kNjEwYmNmNmFkODJjNGZkYiR2YXIkaW5kZW50ZWRKb2luKHIsbik6JDYxMGJjZjZhZDgyYzRmZGIkdmFyJCRqb2luLmNhbGwocixcIiwgXCIpKStcIn1cIn1mdW5jdGlvbiAkNjEwYmNmNmFkODJjNGZkYiR2YXIkc2luZ2xlTGluZVZhbHVlcyhlKXtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKylpZigkNjEwYmNmNmFkODJjNGZkYiR2YXIkaW5kZXhPZihlW3RdLFwiXFxuXCIpPj0wKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uICQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRnZXRJbmRlbnQoZSx0KXt2YXIgcjtpZihcIlx0XCI9PT1lLmluZGVudClyPVwiXHRcIjtlbHNle2lmKFwibnVtYmVyXCIhPXR5cGVvZiBlLmluZGVudHx8IShlLmluZGVudD4wKSlyZXR1cm4gbnVsbDtyPSQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciQkam9pbi5jYWxsKEFycmF5KGUuaW5kZW50KzEpLFwiIFwiKX1yZXR1cm57YmFzZTpyLHByZXY6JDYxMGJjZjZhZDgyYzRmZGIkdmFyJCRqb2luLmNhbGwoQXJyYXkodCsxKSxyKX19ZnVuY3Rpb24gJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGluZGVudGVkSm9pbihlLHQpe2lmKDA9PT1lLmxlbmd0aClyZXR1cm5cIlwiO3ZhciByPVwiXFxuXCIrdC5wcmV2K3QuYmFzZTtyZXR1cm4gciskNjEwYmNmNmFkODJjNGZkYiR2YXIkJGpvaW4uY2FsbChlLFwiLFwiK3IpK1wiXFxuXCIrdC5wcmV2fWZ1bmN0aW9uICQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRhcnJPYmpLZXlzKGUsdCl7dmFyIHIsbj0kNjEwYmNmNmFkODJjNGZkYiR2YXIkaXNBcnJheShlKSxpPVtdO2lmKG4pe2kubGVuZ3RoPWUubGVuZ3RoO2Zvcih2YXIgYT0wO2E8ZS5sZW5ndGg7YSsrKWlbYV09JDYxMGJjZjZhZDgyYzRmZGIkdmFyJGhhcyhlLGEpP3QoZVthXSxlKTpcIlwifXZhciBvPVwiZnVuY3Rpb25cIj09dHlwZW9mICQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRnT1BTPyQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRnT1BTKGUpOltdO2lmKCQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRoYXNTaGFtbWVkU3ltYm9scyl7cj17fTtmb3IodmFyIHM9MDtzPG8ubGVuZ3RoO3MrKylyW1wiJFwiK29bc11dPW9bc119Zm9yKHZhciBsIGluIGUpaWYoJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGhhcyhlLGwpJiYoIW58fFN0cmluZyhOdW1iZXIobCkpIT09bHx8IShsPGUubGVuZ3RoKSkpe2lmKCQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRoYXNTaGFtbWVkU3ltYm9scyYmcltcIiRcIitsXWluc3RhbmNlb2YgU3ltYm9sKWNvbnRpbnVlOyQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciQkdGVzdC5jYWxsKC9bXlxcdyRdLyxsKT9pLnB1c2godChsLGUpK1wiOiBcIit0KGVbbF0sZSkpOmkucHVzaChsK1wiOiBcIit0KGVbbF0sZSkpfWlmKFwiZnVuY3Rpb25cIj09dHlwZW9mICQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRnT1BTKWZvcih2YXIgdT0wO3U8by5sZW5ndGg7dSsrKSQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRpc0VudW1lcmFibGUuY2FsbChlLG9bdV0pJiZpLnB1c2goXCJbXCIrdChvW3VdKStcIl06IFwiK3QoZVtvW3VdXSxlKSk7cmV0dXJuIGl9dmFyICRkODZhMDU0ZmE2NmM1MzA1JGV4cG9ydHM9e30sJGQ4NmEwNTRmYTY2YzUzMDUkdmFyJGxpc3RHZXROb2RlPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIG4saT1lO251bGwhPShuPWkubmV4dCk7aT1uKWlmKG4ua2V5PT09dClyZXR1cm4gaS5uZXh0PW4ubmV4dCxyfHwobi5uZXh0PWUubmV4dCxlLm5leHQ9biksbn0sJGQ4NmEwNTRmYTY2YzUzMDUkdmFyJGxpc3RHZXQ9ZnVuY3Rpb24oZSx0KXtpZihlKXt2YXIgcj0kZDg2YTA1NGZhNjZjNTMwNSR2YXIkbGlzdEdldE5vZGUoZSx0KTtyZXR1cm4gciYmci52YWx1ZX19LCRkODZhMDU0ZmE2NmM1MzA1JHZhciRsaXN0U2V0PWZ1bmN0aW9uKGUsdCxyKXt2YXIgbj0kZDg2YTA1NGZhNjZjNTMwNSR2YXIkbGlzdEdldE5vZGUoZSx0KTtuP24udmFsdWU9cjplLm5leHQ9e2tleTp0LG5leHQ6ZS5uZXh0LHZhbHVlOnJ9fSwkZDg2YTA1NGZhNjZjNTMwNSR2YXIkbGlzdEhhcz1mdW5jdGlvbihlLHQpe3JldHVybiEhZSYmISEkZDg2YTA1NGZhNjZjNTMwNSR2YXIkbGlzdEdldE5vZGUoZSx0KX0sJGQ4NmEwNTRmYTY2YzUzMDUkdmFyJGxpc3REZWxldGU9ZnVuY3Rpb24oZSx0KXtpZihlKXJldHVybiAkZDg2YTA1NGZhNjZjNTMwNSR2YXIkbGlzdEdldE5vZGUoZSx0LCEwKX07JGQ4NmEwNTRmYTY2YzUzMDUkZXhwb3J0cz1mdW5jdGlvbigpe3ZhciBlLHQ9e2Fzc2VydDpmdW5jdGlvbihlKXtpZighdC5oYXMoZSkpdGhyb3cgbmV3ICQ4MWYxNGY2NDU3NjVkMjdiJGV4cG9ydHMoXCJTaWRlIGNoYW5uZWwgZG9lcyBub3QgY29udGFpbiBcIiskNjEwYmNmNmFkODJjNGZkYiRleHBvcnRzKGUpKX0sZGVsZXRlOmZ1bmN0aW9uKHQpe3ZhciByPWUmJmUubmV4dCxuPSRkODZhMDU0ZmE2NmM1MzA1JHZhciRsaXN0RGVsZXRlKGUsdCk7cmV0dXJuIG4mJnImJnI9PT1uJiYoZT12b2lkIDApLCEhbn0sZ2V0OmZ1bmN0aW9uKHQpe3JldHVybiAkZDg2YTA1NGZhNjZjNTMwNSR2YXIkbGlzdEdldChlLHQpfSxoYXM6ZnVuY3Rpb24odCl7cmV0dXJuICRkODZhMDU0ZmE2NmM1MzA1JHZhciRsaXN0SGFzKGUsdCl9LHNldDpmdW5jdGlvbih0LHIpe2V8fChlPXtuZXh0OnZvaWQgMH0pLCRkODZhMDU0ZmE2NmM1MzA1JHZhciRsaXN0U2V0KGUsdCxyKX19O3JldHVybiB0fTt2YXIgJDVhMDhhOTI1NTg3ZjgxMDgkZXhwb3J0cz17fSwkY2YxYzY0ZmQ3ZjlmNjg0YiRleHBvcnRzPXt9LCRlNGVjN2ZjYzA2ZTI2MWUzJGV4cG9ydHM9e307JGU0ZWM3ZmNjMDZlMjYxZTMkZXhwb3J0cz1PYmplY3Q7dmFyICRhMjA0MWZmZDkzNjBkMTRjJGV4cG9ydHM9e307JGEyMDQxZmZkOTM2MGQxNGMkZXhwb3J0cz1FcnJvcjt2YXIgJDMwMzIxYjA5Y2Q1YWI3MTkkZXhwb3J0cz17fTskMzAzMjFiMDljZDVhYjcxOSRleHBvcnRzPUV2YWxFcnJvcjt2YXIgJDM5NjBlZjNmZDNhM2NjOTAkZXhwb3J0cz17fTskMzk2MGVmM2ZkM2EzY2M5MCRleHBvcnRzPVJhbmdlRXJyb3I7dmFyICQ1N2MwYzQ1ZWZmZTg5NjZhJGV4cG9ydHM9e307JDU3YzBjNDVlZmZlODk2NmEkZXhwb3J0cz1SZWZlcmVuY2VFcnJvcjt2YXIgJGYyYWVlMWNiYzJlNWUxNDQkZXhwb3J0cz17fTskZjJhZWUxY2JjMmU1ZTE0NCRleHBvcnRzPVN5bnRheEVycm9yO3ZhciAkNjQ5ZjNlYzhiNWEzYzJiNiRleHBvcnRzPXt9OyQ2NDlmM2VjOGI1YTNjMmI2JGV4cG9ydHM9VVJJRXJyb3I7dmFyICQ5ZWZlMThmNmNjZTJiZDc2JGV4cG9ydHM9e307JDllZmUxOGY2Y2NlMmJkNzYkZXhwb3J0cz1NYXRoLmFiczt2YXIgJGE0MWU3YzI2NzMyZjRlYjckZXhwb3J0cz17fTskYTQxZTdjMjY3MzJmNGViNyRleHBvcnRzPU1hdGguZmxvb3I7dmFyICRhNGM0ZGNjYzFiYmM4NDQ3JGV4cG9ydHM9e307JGE0YzRkY2NjMWJiYzg0NDckZXhwb3J0cz1NYXRoLm1heDt2YXIgJGM5ODVkMjhlYTlmMmFmZWIkZXhwb3J0cz17fTskYzk4NWQyOGVhOWYyYWZlYiRleHBvcnRzPU1hdGgubWluO3ZhciAkMTVkZGY5NTUyMWMyM2RmNSRleHBvcnRzPXt9OyQxNWRkZjk1NTIxYzIzZGY1JGV4cG9ydHM9TWF0aC5wb3c7dmFyICQzYTYzM2FlZmFkNWQ0Y2VhJGV4cG9ydHM9e307JDNhNjMzYWVmYWQ1ZDRjZWEkZXhwb3J0cz1NYXRoLnJvdW5kO3ZhciAkNmJmNDFiOGUzNzA3N2IwMCRleHBvcnRzPXt9LCQyZmQzODk0NGZjMWU5YWZlJGV4cG9ydHM9e307JDJmZDM4OTQ0ZmMxZTlhZmUkZXhwb3J0cz1OdW1iZXIuaXNOYU58fGZ1bmN0aW9uKGUpe3JldHVybiBlIT1lfSwkNmJmNDFiOGUzNzA3N2IwMCRleHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiAkMmZkMzg5NDRmYzFlOWFmZSRleHBvcnRzKGUpfHwwPT09ZT9lOmU8MD8tMToxfTt2YXIgJGNmMWM2NGZkN2Y5ZjY4NGIkdmFyJCRGdW5jdGlvbj1GdW5jdGlvbiwkY2YxYzY0ZmQ3ZjlmNjg0YiR2YXIkZ2V0RXZhbGxlZENvbnN0cnVjdG9yPWZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4gJGNmMWM2NGZkN2Y5ZjY4NGIkdmFyJCRGdW5jdGlvbignXCJ1c2Ugc3RyaWN0XCI7IHJldHVybiAoJytlK1wiKS5jb25zdHJ1Y3RvcjtcIikoKX1jYXRjaChlKXt9fSwkNjVkNjZjNjQ3ZGRlYWMzMiRleHBvcnRzPXt9LCQzYmUyNmMyZTM2YmNlZDhkJGV4cG9ydHM9e307JDNiZTI2YzJlMzZiY2VkOGQkZXhwb3J0cz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO3ZhciAkNjVkNjZjNjQ3ZGRlYWMzMiRyZXF1aXJlJCRnT1BEPSQzYmUyNmMyZTM2YmNlZDhkJGV4cG9ydHM7aWYoJDY1ZDY2YzY0N2RkZWFjMzIkcmVxdWlyZSQkZ09QRCl0cnl7JDY1ZDY2YzY0N2RkZWFjMzIkcmVxdWlyZSQkZ09QRChbXSxcImxlbmd0aFwiKX1jYXRjaChlKXskNjVkNjZjNjQ3ZGRlYWMzMiRyZXF1aXJlJCRnT1BEPW51bGx9JDY1ZDY2YzY0N2RkZWFjMzIkZXhwb3J0cz0kNjVkNjZjNjQ3ZGRlYWMzMiRyZXF1aXJlJCRnT1BEO3ZhciAkY2UwN2I1MjQ5NzY1NThiMSRleHBvcnRzPXt9LCRjZTA3YjUyNDk3NjU1OGIxJHZhciQkZGVmaW5lUHJvcGVydHk9T2JqZWN0LmRlZmluZVByb3BlcnR5fHwhMTtpZigkY2UwN2I1MjQ5NzY1NThiMSR2YXIkJGRlZmluZVByb3BlcnR5KXRyeXskY2UwN2I1MjQ5NzY1NThiMSR2YXIkJGRlZmluZVByb3BlcnR5KHt9LFwiYVwiLHt2YWx1ZToxfSl9Y2F0Y2goZSl7JGNlMDdiNTI0OTc2NTU4YjEkdmFyJCRkZWZpbmVQcm9wZXJ0eT0hMX0kY2UwN2I1MjQ5NzY1NThiMSRleHBvcnRzPSRjZTA3YjUyNDk3NjU1OGIxJHZhciQkZGVmaW5lUHJvcGVydHk7dmFyICRjZjFjNjRmZDdmOWY2ODRiJHZhciR0aHJvd1R5cGVFcnJvcj1mdW5jdGlvbigpe3Rocm93IG5ldyAkODFmMTRmNjQ1NzY1ZDI3YiRleHBvcnRzfSwkY2YxYzY0ZmQ3ZjlmNjg0YiR2YXIkVGhyb3dUeXBlRXJyb3I9JDY1ZDY2YzY0N2RkZWFjMzIkZXhwb3J0cz9mdW5jdGlvbigpe3RyeXtyZXR1cm4gYXJndW1lbnRzLmNhbGxlZSwkY2YxYzY0ZmQ3ZjlmNjg0YiR2YXIkdGhyb3dUeXBlRXJyb3J9Y2F0Y2goZSl7dHJ5e3JldHVybiAkNjVkNjZjNjQ3ZGRlYWMzMiRleHBvcnRzKGFyZ3VtZW50cyxcImNhbGxlZVwiKS5nZXR9Y2F0Y2goZSl7cmV0dXJuICRjZjFjNjRmZDdmOWY2ODRiJHZhciR0aHJvd1R5cGVFcnJvcn19fSgpOiRjZjFjNjRmZDdmOWY2ODRiJHZhciR0aHJvd1R5cGVFcnJvciwkY2YxYzY0ZmQ3ZjlmNjg0YiR2YXIkaGFzU3ltYm9scz1wYXJjZWxSZXF1aXJlKFwia2ZJUWxcIikoKSwkMzM1M2I4NDI2NjQwZWY5NSRleHBvcnRzPXt9LCRhN2ZmNGFiMTRjZjNhZDViJGV4cG9ydHM9e307JGE3ZmY0YWIxNGNmM2FkNWIkZXhwb3J0cz1cInVuZGVmaW5lZFwiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXRQcm90b3R5cGVPZnx8bnVsbDt2YXIgJGY1YTE3ZTU2NWRiMDU4YTkkZXhwb3J0cz17fTskZjVhMTdlNTY1ZGIwNThhOSRleHBvcnRzPSRlNGVjN2ZjYzA2ZTI2MWUzJGV4cG9ydHMuZ2V0UHJvdG90eXBlT2Z8fG51bGw7dmFyICRhOGUzNWM5N2RhMzQ3MzBjJGV4cG9ydHM9e30sJGVjN2UyYzUyOTVhNTI5MTIkZXhwb3J0cz17fSwkY2MxMGU0Mjc5NGI1Zjc4OSRleHBvcnRzPXt9LCQxZWVhMGVmMjY2ZjNjOTMyJGV4cG9ydHM9e30sJDFlZWEwZWYyNjZmM2M5MzIkdmFyJEVSUk9SX01FU1NBR0U9XCJGdW5jdGlvbi5wcm90b3R5cGUuYmluZCBjYWxsZWQgb24gaW5jb21wYXRpYmxlIFwiLCQxZWVhMGVmMjY2ZjNjOTMyJHZhciR0b1N0cj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLCQxZWVhMGVmMjY2ZjNjOTMyJHZhciRtYXg9TWF0aC5tYXgsJDFlZWEwZWYyNjZmM2M5MzIkdmFyJGZ1bmNUeXBlPVwiW29iamVjdCBGdW5jdGlvbl1cIiwkMWVlYTBlZjI2NmYzYzkzMiR2YXIkY29uY2F0dHk9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9W10sbj0wO248ZS5sZW5ndGg7bis9MSlyW25dPWVbbl07Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKz0xKXJbaStlLmxlbmd0aF09dFtpXTtyZXR1cm4gcn0sJDFlZWEwZWYyNjZmM2M5MzIkdmFyJHNsaWN5PWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByPVtdLG49dHx8MCxpPTA7bjxlLmxlbmd0aDtuKz0xLGkrPTEpcltpXT1lW25dO3JldHVybiByfSwkMWVlYTBlZjI2NmYzYzkzMiR2YXIkam9pbnk9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9XCJcIixuPTA7bjxlLmxlbmd0aDtuKz0xKXIrPWVbbl0sbisxPGUubGVuZ3RoJiYocis9dCk7cmV0dXJuIHJ9OyQxZWVhMGVmMjY2ZjNjOTMyJGV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQscj10aGlzO2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIHJ8fCQxZWVhMGVmMjY2ZjNjOTMyJHZhciR0b1N0ci5hcHBseShyKSE9PSQxZWVhMGVmMjY2ZjNjOTMyJHZhciRmdW5jVHlwZSl0aHJvdyBUeXBlRXJyb3IoJDFlZWEwZWYyNjZmM2M5MzIkdmFyJEVSUk9SX01FU1NBR0Urcik7Zm9yKHZhciBuPSQxZWVhMGVmMjY2ZjNjOTMyJHZhciRzbGljeShhcmd1bWVudHMsMSksaT1mdW5jdGlvbigpe2lmKHRoaXMgaW5zdGFuY2VvZiB0KXt2YXIgaT1yLmFwcGx5KHRoaXMsJDFlZWEwZWYyNjZmM2M5MzIkdmFyJGNvbmNhdHR5KG4sYXJndW1lbnRzKSk7cmV0dXJuIE9iamVjdChpKT09PWk/aTp0aGlzfXJldHVybiByLmFwcGx5KGUsJDFlZWEwZWYyNjZmM2M5MzIkdmFyJGNvbmNhdHR5KG4sYXJndW1lbnRzKSl9LGE9JDFlZWEwZWYyNjZmM2M5MzIkdmFyJG1heCgwLHIubGVuZ3RoLW4ubGVuZ3RoKSxvPVtdLHM9MDtzPGE7cysrKW9bc109XCIkXCIrcztpZih0PUZ1bmN0aW9uKFwiYmluZGVyXCIsXCJyZXR1cm4gZnVuY3Rpb24gKFwiKyQxZWVhMGVmMjY2ZjNjOTMyJHZhciRqb2lueShvLFwiLFwiKStcIil7IHJldHVybiBiaW5kZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpOyB9XCIpKGkpLHIucHJvdG90eXBlKXt2YXIgbD1mdW5jdGlvbigpe307bC5wcm90b3R5cGU9ci5wcm90b3R5cGUsdC5wcm90b3R5cGU9bmV3IGwsbC5wcm90b3R5cGU9bnVsbH1yZXR1cm4gdH0sJGNjMTBlNDI3OTRiNWY3ODkkZXhwb3J0cz1GdW5jdGlvbi5wcm90b3R5cGUuYmluZHx8JDFlZWEwZWYyNjZmM2M5MzIkZXhwb3J0czt2YXIgJDczYWEyYTNkNTJjZTQzMGMkZXhwb3J0cz17fTskNzNhYTJhM2Q1MmNlNDMwYyRleHBvcnRzPUZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsO3ZhciAkYWE2Y2Y4NzIzN2NmYmI4MSRleHBvcnRzPXt9LCQxYTE3YTBmY2U5NmVmYzUxJGV4cG9ydHM9e307JDFhMTdhMGZjZTk2ZWZjNTEkZXhwb3J0cz1GdW5jdGlvbi5wcm90b3R5cGUuYXBwbHk7dmFyICQ0OGE1ZjIxOGI2YzdlYjc4JGV4cG9ydHM9e307JDQ4YTVmMjE4YjZjN2ViNzgkZXhwb3J0cz1cInVuZGVmaW5lZFwiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdCYmUmVmbGVjdC5hcHBseSwkYWE2Y2Y4NzIzN2NmYmI4MSRleHBvcnRzPSQ0OGE1ZjIxOGI2YzdlYjc4JGV4cG9ydHN8fCRjYzEwZTQyNzk0YjVmNzg5JGV4cG9ydHMuY2FsbCgkNzNhYTJhM2Q1MmNlNDMwYyRleHBvcnRzLCQxYTE3YTBmY2U5NmVmYzUxJGV4cG9ydHMpLCRlYzdlMmM1Mjk1YTUyOTEyJGV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYoZS5sZW5ndGg8MXx8XCJmdW5jdGlvblwiIT10eXBlb2YgZVswXSl0aHJvdyBuZXcgJDgxZjE0ZjY0NTc2NWQyN2IkZXhwb3J0cyhcImEgZnVuY3Rpb24gaXMgcmVxdWlyZWRcIik7cmV0dXJuICRhYTZjZjg3MjM3Y2ZiYjgxJGV4cG9ydHMoJGNjMTBlNDI3OTRiNWY3ODkkZXhwb3J0cywkNzNhYTJhM2Q1MmNlNDMwYyRleHBvcnRzLGUpfTt0cnl7JGE4ZTM1Yzk3ZGEzNDczMGMkdmFyJGhhc1Byb3RvQWNjZXNzb3I9W10uX19wcm90b19fPT09QXJyYXkucHJvdG90eXBlfWNhdGNoKGUpe2lmKCFlfHxcIm9iamVjdFwiIT10eXBlb2YgZXx8IShcImNvZGVcImluIGUpfHxcIkVSUl9QUk9UT19BQ0NFU1NcIiE9PWUuY29kZSl0aHJvdyBlfXZhciAkYThlMzVjOTdkYTM0NzMwYyR2YXIkZGVzYz0hISRhOGUzNWM5N2RhMzQ3MzBjJHZhciRoYXNQcm90b0FjY2Vzc29yJiYkNjVkNjZjNjQ3ZGRlYWMzMiRleHBvcnRzJiYkNjVkNjZjNjQ3ZGRlYWMzMiRleHBvcnRzKE9iamVjdC5wcm90b3R5cGUsXCJfX3Byb3RvX19cIiksJGE4ZTM1Yzk3ZGEzNDczMGMkdmFyJCRPYmplY3Q9T2JqZWN0LCRhOGUzNWM5N2RhMzQ3MzBjJHZhciQkZ2V0UHJvdG90eXBlT2Y9JGE4ZTM1Yzk3ZGEzNDczMGMkdmFyJCRPYmplY3QuZ2V0UHJvdG90eXBlT2Y7JGE4ZTM1Yzk3ZGEzNDczMGMkZXhwb3J0cz0kYThlMzVjOTdkYTM0NzMwYyR2YXIkZGVzYyYmXCJmdW5jdGlvblwiPT10eXBlb2YgJGE4ZTM1Yzk3ZGEzNDczMGMkdmFyJGRlc2MuZ2V0PyRlYzdlMmM1Mjk1YTUyOTEyJGV4cG9ydHMoWyRhOGUzNWM5N2RhMzQ3MzBjJHZhciRkZXNjLmdldF0pOlwiZnVuY3Rpb25cIj09dHlwZW9mICRhOGUzNWM5N2RhMzQ3MzBjJHZhciQkZ2V0UHJvdG90eXBlT2YmJmZ1bmN0aW9uKGUpe3JldHVybiAkYThlMzVjOTdkYTM0NzMwYyR2YXIkJGdldFByb3RvdHlwZU9mKG51bGw9PWU/ZTokYThlMzVjOTdkYTM0NzMwYyR2YXIkJE9iamVjdChlKSl9LCQzMzUzYjg0MjY2NDBlZjk1JGV4cG9ydHM9JGE3ZmY0YWIxNGNmM2FkNWIkZXhwb3J0cz9mdW5jdGlvbihlKXtyZXR1cm4gJGE3ZmY0YWIxNGNmM2FkNWIkZXhwb3J0cyhlKX06JGY1YTE3ZTU2NWRiMDU4YTkkZXhwb3J0cz9mdW5jdGlvbihlKXtpZighZXx8XCJvYmplY3RcIiE9dHlwZW9mIGUmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIGUpdGhyb3cgVHlwZUVycm9yKFwiZ2V0UHJvdG86IG5vdCBhbiBvYmplY3RcIik7cmV0dXJuICRmNWExN2U1NjVkYjA1OGE5JGV4cG9ydHMoZSl9OiRhOGUzNWM5N2RhMzQ3MzBjJGV4cG9ydHM/ZnVuY3Rpb24oZSl7cmV0dXJuICRhOGUzNWM5N2RhMzQ3MzBjJGV4cG9ydHMoZSl9Om51bGw7dmFyICRjZjFjNjRmZDdmOWY2ODRiJHZhciRuZWVkc0V2YWw9e30sJGNmMWM2NGZkN2Y5ZjY4NGIkdmFyJFR5cGVkQXJyYXk9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFVpbnQ4QXJyYXkmJiQzMzUzYjg0MjY2NDBlZjk1JGV4cG9ydHM/JDMzNTNiODQyNjY0MGVmOTUkZXhwb3J0cyhVaW50OEFycmF5KTp2b2lkIDAsJGNmMWM2NGZkN2Y5ZjY4NGIkdmFyJElOVFJJTlNJQ1M9e19fcHJvdG9fXzpudWxsLFwiJUFnZ3JlZ2F0ZUVycm9yJVwiOlwidW5kZWZpbmVkXCI9PXR5cGVvZiBBZ2dyZWdhdGVFcnJvcj92b2lkIDA6QWdncmVnYXRlRXJyb3IsXCIlQXJyYXklXCI6QXJyYXksXCIlQXJyYXlCdWZmZXIlXCI6XCJ1bmRlZmluZWRcIj09dHlwZW9mIEFycmF5QnVmZmVyP3ZvaWQgMDpBcnJheUJ1ZmZlcixcIiVBcnJheUl0ZXJhdG9yUHJvdG90eXBlJVwiOiRjZjFjNjRmZDdmOWY2ODRiJHZhciRoYXNTeW1ib2xzJiYkMzM1M2I4NDI2NjQwZWY5NSRleHBvcnRzPyQzMzUzYjg0MjY2NDBlZjk1JGV4cG9ydHMoW11bU3ltYm9sLml0ZXJhdG9yXSgpKTp2b2lkIDAsXCIlQXN5bmNGcm9tU3luY0l0ZXJhdG9yUHJvdG90eXBlJVwiOnZvaWQgMCxcIiVBc3luY0Z1bmN0aW9uJVwiOiRjZjFjNjRmZDdmOWY2ODRiJHZhciRuZWVkc0V2YWwsXCIlQXN5bmNHZW5lcmF0b3IlXCI6JGNmMWM2NGZkN2Y5ZjY4NGIkdmFyJG5lZWRzRXZhbCxcIiVBc3luY0dlbmVyYXRvckZ1bmN0aW9uJVwiOiRjZjFjNjRmZDdmOWY2ODRiJHZhciRuZWVkc0V2YWwsXCIlQXN5bmNJdGVyYXRvclByb3RvdHlwZSVcIjokY2YxYzY0ZmQ3ZjlmNjg0YiR2YXIkbmVlZHNFdmFsLFwiJUF0b21pY3MlXCI6XCJ1bmRlZmluZWRcIj09dHlwZW9mIEF0b21pY3M/dm9pZCAwOkF0b21pY3MsXCIlQmlnSW50JVwiOlwidW5kZWZpbmVkXCI9PXR5cGVvZiBCaWdJbnQ/dm9pZCAwOkJpZ0ludCxcIiVCaWdJbnQ2NEFycmF5JVwiOlwidW5kZWZpbmVkXCI9PXR5cGVvZiBCaWdJbnQ2NEFycmF5P3ZvaWQgMDpCaWdJbnQ2NEFycmF5LFwiJUJpZ1VpbnQ2NEFycmF5JVwiOlwidW5kZWZpbmVkXCI9PXR5cGVvZiBCaWdVaW50NjRBcnJheT92b2lkIDA6QmlnVWludDY0QXJyYXksXCIlQm9vbGVhbiVcIjpCb29sZWFuLFwiJURhdGFWaWV3JVwiOlwidW5kZWZpbmVkXCI9PXR5cGVvZiBEYXRhVmlldz92b2lkIDA6RGF0YVZpZXcsXCIlRGF0ZSVcIjpEYXRlLFwiJWRlY29kZVVSSSVcIjpkZWNvZGVVUkksXCIlZGVjb2RlVVJJQ29tcG9uZW50JVwiOmRlY29kZVVSSUNvbXBvbmVudCxcIiVlbmNvZGVVUkklXCI6ZW5jb2RlVVJJLFwiJWVuY29kZVVSSUNvbXBvbmVudCVcIjplbmNvZGVVUklDb21wb25lbnQsXCIlRXJyb3IlXCI6JGEyMDQxZmZkOTM2MGQxNGMkZXhwb3J0cyxcIiVldmFsJVwiOmV2YWwsXCIlRXZhbEVycm9yJVwiOiQzMDMyMWIwOWNkNWFiNzE5JGV4cG9ydHMsXCIlRmxvYXQxNkFycmF5JVwiOlwidW5kZWZpbmVkXCI9PXR5cGVvZiBGbG9hdDE2QXJyYXk/dm9pZCAwOkZsb2F0MTZBcnJheSxcIiVGbG9hdDMyQXJyYXklXCI6XCJ1bmRlZmluZWRcIj09dHlwZW9mIEZsb2F0MzJBcnJheT92b2lkIDA6RmxvYXQzMkFycmF5LFwiJUZsb2F0NjRBcnJheSVcIjpcInVuZGVmaW5lZFwiPT10eXBlb2YgRmxvYXQ2NEFycmF5P3ZvaWQgMDpGbG9hdDY0QXJyYXksXCIlRmluYWxpemF0aW9uUmVnaXN0cnklXCI6XCJ1bmRlZmluZWRcIj09dHlwZW9mIEZpbmFsaXphdGlvblJlZ2lzdHJ5P3ZvaWQgMDpGaW5hbGl6YXRpb25SZWdpc3RyeSxcIiVGdW5jdGlvbiVcIjokY2YxYzY0ZmQ3ZjlmNjg0YiR2YXIkJEZ1bmN0aW9uLFwiJUdlbmVyYXRvckZ1bmN0aW9uJVwiOiRjZjFjNjRmZDdmOWY2ODRiJHZhciRuZWVkc0V2YWwsXCIlSW50OEFycmF5JVwiOlwidW5kZWZpbmVkXCI9PXR5cGVvZiBJbnQ4QXJyYXk/dm9pZCAwOkludDhBcnJheSxcIiVJbnQxNkFycmF5JVwiOlwidW5kZWZpbmVkXCI9PXR5cGVvZiBJbnQxNkFycmF5P3ZvaWQgMDpJbnQxNkFycmF5LFwiJUludDMyQXJyYXklXCI6XCJ1bmRlZmluZWRcIj09dHlwZW9mIEludDMyQXJyYXk/dm9pZCAwOkludDMyQXJyYXksXCIlaXNGaW5pdGUlXCI6aXNGaW5pdGUsXCIlaXNOYU4lXCI6aXNOYU4sXCIlSXRlcmF0b3JQcm90b3R5cGUlXCI6JGNmMWM2NGZkN2Y5ZjY4NGIkdmFyJGhhc1N5bWJvbHMmJiQzMzUzYjg0MjY2NDBlZjk1JGV4cG9ydHM/JDMzNTNiODQyNjY0MGVmOTUkZXhwb3J0cygkMzM1M2I4NDI2NjQwZWY5NSRleHBvcnRzKFtdW1N5bWJvbC5pdGVyYXRvcl0oKSkpOnZvaWQgMCxcIiVKU09OJVwiOlwib2JqZWN0XCI9PXR5cGVvZiBKU09OP0pTT046dm9pZCAwLFwiJU1hcCVcIjpcInVuZGVmaW5lZFwiPT10eXBlb2YgTWFwP3ZvaWQgMDpNYXAsXCIlTWFwSXRlcmF0b3JQcm90b3R5cGUlXCI6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIE1hcCYmJGNmMWM2NGZkN2Y5ZjY4NGIkdmFyJGhhc1N5bWJvbHMmJiQzMzUzYjg0MjY2NDBlZjk1JGV4cG9ydHM/JDMzNTNiODQyNjY0MGVmOTUkZXhwb3J0cyhuZXcgTWFwKClbU3ltYm9sLml0ZXJhdG9yXSgpKTp2b2lkIDAsXCIlTWF0aCVcIjpNYXRoLFwiJU51bWJlciVcIjpOdW1iZXIsXCIlT2JqZWN0JVwiOiRlNGVjN2ZjYzA2ZTI2MWUzJGV4cG9ydHMsXCIlT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvciVcIjokNjVkNjZjNjQ3ZGRlYWMzMiRleHBvcnRzLFwiJXBhcnNlRmxvYXQlXCI6cGFyc2VGbG9hdCxcIiVwYXJzZUludCVcIjpwYXJzZUludCxcIiVQcm9taXNlJVwiOlwidW5kZWZpbmVkXCI9PXR5cGVvZiBQcm9taXNlP3ZvaWQgMDpQcm9taXNlLFwiJVByb3h5JVwiOlwidW5kZWZpbmVkXCI9PXR5cGVvZiBQcm94eT92b2lkIDA6UHJveHksXCIlUmFuZ2VFcnJvciVcIjokMzk2MGVmM2ZkM2EzY2M5MCRleHBvcnRzLFwiJVJlZmVyZW5jZUVycm9yJVwiOiQ1N2MwYzQ1ZWZmZTg5NjZhJGV4cG9ydHMsXCIlUmVmbGVjdCVcIjpcInVuZGVmaW5lZFwiPT10eXBlb2YgUmVmbGVjdD92b2lkIDA6UmVmbGVjdCxcIiVSZWdFeHAlXCI6UmVnRXhwLFwiJVNldCVcIjpcInVuZGVmaW5lZFwiPT10eXBlb2YgU2V0P3ZvaWQgMDpTZXQsXCIlU2V0SXRlcmF0b3JQcm90b3R5cGUlXCI6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFNldCYmJGNmMWM2NGZkN2Y5ZjY4NGIkdmFyJGhhc1N5bWJvbHMmJiQzMzUzYjg0MjY2NDBlZjk1JGV4cG9ydHM/JDMzNTNiODQyNjY0MGVmOTUkZXhwb3J0cyhuZXcgU2V0KClbU3ltYm9sLml0ZXJhdG9yXSgpKTp2b2lkIDAsXCIlU2hhcmVkQXJyYXlCdWZmZXIlXCI6XCJ1bmRlZmluZWRcIj09dHlwZW9mIFNoYXJlZEFycmF5QnVmZmVyP3ZvaWQgMDpTaGFyZWRBcnJheUJ1ZmZlcixcIiVTdHJpbmclXCI6U3RyaW5nLFwiJVN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlJVwiOiRjZjFjNjRmZDdmOWY2ODRiJHZhciRoYXNTeW1ib2xzJiYkMzM1M2I4NDI2NjQwZWY5NSRleHBvcnRzPyQzMzUzYjg0MjY2NDBlZjk1JGV4cG9ydHMoXCJcIltTeW1ib2wuaXRlcmF0b3JdKCkpOnZvaWQgMCxcIiVTeW1ib2wlXCI6JGNmMWM2NGZkN2Y5ZjY4NGIkdmFyJGhhc1N5bWJvbHM/U3ltYm9sOnZvaWQgMCxcIiVTeW50YXhFcnJvciVcIjokZjJhZWUxY2JjMmU1ZTE0NCRleHBvcnRzLFwiJVRocm93VHlwZUVycm9yJVwiOiRjZjFjNjRmZDdmOWY2ODRiJHZhciRUaHJvd1R5cGVFcnJvcixcIiVUeXBlZEFycmF5JVwiOiRjZjFjNjRmZDdmOWY2ODRiJHZhciRUeXBlZEFycmF5LFwiJVR5cGVFcnJvciVcIjokODFmMTRmNjQ1NzY1ZDI3YiRleHBvcnRzLFwiJVVpbnQ4QXJyYXklXCI6XCJ1bmRlZmluZWRcIj09dHlwZW9mIFVpbnQ4QXJyYXk/dm9pZCAwOlVpbnQ4QXJyYXksXCIlVWludDhDbGFtcGVkQXJyYXklXCI6XCJ1bmRlZmluZWRcIj09dHlwZW9mIFVpbnQ4Q2xhbXBlZEFycmF5P3ZvaWQgMDpVaW50OENsYW1wZWRBcnJheSxcIiVVaW50MTZBcnJheSVcIjpcInVuZGVmaW5lZFwiPT10eXBlb2YgVWludDE2QXJyYXk/dm9pZCAwOlVpbnQxNkFycmF5LFwiJVVpbnQzMkFycmF5JVwiOlwidW5kZWZpbmVkXCI9PXR5cGVvZiBVaW50MzJBcnJheT92b2lkIDA6VWludDMyQXJyYXksXCIlVVJJRXJyb3IlXCI6JDY0OWYzZWM4YjVhM2MyYjYkZXhwb3J0cyxcIiVXZWFrTWFwJVwiOlwidW5kZWZpbmVkXCI9PXR5cGVvZiBXZWFrTWFwP3ZvaWQgMDpXZWFrTWFwLFwiJVdlYWtSZWYlXCI6XCJ1bmRlZmluZWRcIj09dHlwZW9mIFdlYWtSZWY/dm9pZCAwOldlYWtSZWYsXCIlV2Vha1NldCVcIjpcInVuZGVmaW5lZFwiPT10eXBlb2YgV2Vha1NldD92b2lkIDA6V2Vha1NldCxcIiVGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCVcIjokNzNhYTJhM2Q1MmNlNDMwYyRleHBvcnRzLFwiJUZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseSVcIjokMWExN2EwZmNlOTZlZmM1MSRleHBvcnRzLFwiJU9iamVjdC5kZWZpbmVQcm9wZXJ0eSVcIjokY2UwN2I1MjQ5NzY1NThiMSRleHBvcnRzLFwiJU9iamVjdC5nZXRQcm90b3R5cGVPZiVcIjokZjVhMTdlNTY1ZGIwNThhOSRleHBvcnRzLFwiJU1hdGguYWJzJVwiOiQ5ZWZlMThmNmNjZTJiZDc2JGV4cG9ydHMsXCIlTWF0aC5mbG9vciVcIjokYTQxZTdjMjY3MzJmNGViNyRleHBvcnRzLFwiJU1hdGgubWF4JVwiOiRhNGM0ZGNjYzFiYmM4NDQ3JGV4cG9ydHMsXCIlTWF0aC5taW4lXCI6JGM5ODVkMjhlYTlmMmFmZWIkZXhwb3J0cyxcIiVNYXRoLnBvdyVcIjokMTVkZGY5NTUyMWMyM2RmNSRleHBvcnRzLFwiJU1hdGgucm91bmQlXCI6JDNhNjMzYWVmYWQ1ZDRjZWEkZXhwb3J0cyxcIiVNYXRoLnNpZ24lXCI6JDZiZjQxYjhlMzcwNzdiMDAkZXhwb3J0cyxcIiVSZWZsZWN0LmdldFByb3RvdHlwZU9mJVwiOiRhN2ZmNGFiMTRjZjNhZDViJGV4cG9ydHN9O2lmKCQzMzUzYjg0MjY2NDBlZjk1JGV4cG9ydHMpdHJ5e251bGwuZXJyb3J9Y2F0Y2goZSl7dmFyICRjZjFjNjRmZDdmOWY2ODRiJHZhciRlcnJvclByb3RvPSQzMzUzYjg0MjY2NDBlZjk1JGV4cG9ydHMoJDMzNTNiODQyNjY0MGVmOTUkZXhwb3J0cyhlKSk7JGNmMWM2NGZkN2Y5ZjY4NGIkdmFyJElOVFJJTlNJQ1NbXCIlRXJyb3IucHJvdG90eXBlJVwiXT0kY2YxYzY0ZmQ3ZjlmNjg0YiR2YXIkZXJyb3JQcm90b312YXIgJGNmMWM2NGZkN2Y5ZjY4NGIkdmFyJGRvRXZhbD1mdW5jdGlvbiBlKHQpe3ZhciByO2lmKFwiJUFzeW5jRnVuY3Rpb24lXCI9PT10KXI9JGNmMWM2NGZkN2Y5ZjY4NGIkdmFyJGdldEV2YWxsZWRDb25zdHJ1Y3RvcihcImFzeW5jIGZ1bmN0aW9uICgpIHt9XCIpO2Vsc2UgaWYoXCIlR2VuZXJhdG9yRnVuY3Rpb24lXCI9PT10KXI9JGNmMWM2NGZkN2Y5ZjY4NGIkdmFyJGdldEV2YWxsZWRDb25zdHJ1Y3RvcihcImZ1bmN0aW9uKiAoKSB7fVwiKTtlbHNlIGlmKFwiJUFzeW5jR2VuZXJhdG9yRnVuY3Rpb24lXCI9PT10KXI9JGNmMWM2NGZkN2Y5ZjY4NGIkdmFyJGdldEV2YWxsZWRDb25zdHJ1Y3RvcihcImFzeW5jIGZ1bmN0aW9uKiAoKSB7fVwiKTtlbHNlIGlmKFwiJUFzeW5jR2VuZXJhdG9yJVwiPT09dCl7dmFyIG49ZShcIiVBc3luY0dlbmVyYXRvckZ1bmN0aW9uJVwiKTtuJiYocj1uLnByb3RvdHlwZSl9ZWxzZSBpZihcIiVBc3luY0l0ZXJhdG9yUHJvdG90eXBlJVwiPT09dCl7dmFyIGk9ZShcIiVBc3luY0dlbmVyYXRvciVcIik7aSYmJDMzNTNiODQyNjY0MGVmOTUkZXhwb3J0cyYmKHI9JDMzNTNiODQyNjY0MGVmOTUkZXhwb3J0cyhpLnByb3RvdHlwZSkpfXJldHVybiAkY2YxYzY0ZmQ3ZjlmNjg0YiR2YXIkSU5UUklOU0lDU1t0XT1yLHJ9LCRjZjFjNjRmZDdmOWY2ODRiJHZhciRMRUdBQ1lfQUxJQVNFUz17X19wcm90b19fOm51bGwsXCIlQXJyYXlCdWZmZXJQcm90b3R5cGUlXCI6W1wiQXJyYXlCdWZmZXJcIixcInByb3RvdHlwZVwiXSxcIiVBcnJheVByb3RvdHlwZSVcIjpbXCJBcnJheVwiLFwicHJvdG90eXBlXCJdLFwiJUFycmF5UHJvdG9fZW50cmllcyVcIjpbXCJBcnJheVwiLFwicHJvdG90eXBlXCIsXCJlbnRyaWVzXCJdLFwiJUFycmF5UHJvdG9fZm9yRWFjaCVcIjpbXCJBcnJheVwiLFwicHJvdG90eXBlXCIsXCJmb3JFYWNoXCJdLFwiJUFycmF5UHJvdG9fa2V5cyVcIjpbXCJBcnJheVwiLFwicHJvdG90eXBlXCIsXCJrZXlzXCJdLFwiJUFycmF5UHJvdG9fdmFsdWVzJVwiOltcIkFycmF5XCIsXCJwcm90b3R5cGVcIixcInZhbHVlc1wiXSxcIiVBc3luY0Z1bmN0aW9uUHJvdG90eXBlJVwiOltcIkFzeW5jRnVuY3Rpb25cIixcInByb3RvdHlwZVwiXSxcIiVBc3luY0dlbmVyYXRvciVcIjpbXCJBc3luY0dlbmVyYXRvckZ1bmN0aW9uXCIsXCJwcm90b3R5cGVcIl0sXCIlQXN5bmNHZW5lcmF0b3JQcm90b3R5cGUlXCI6W1wiQXN5bmNHZW5lcmF0b3JGdW5jdGlvblwiLFwicHJvdG90eXBlXCIsXCJwcm90b3R5cGVcIl0sXCIlQm9vbGVhblByb3RvdHlwZSVcIjpbXCJCb29sZWFuXCIsXCJwcm90b3R5cGVcIl0sXCIlRGF0YVZpZXdQcm90b3R5cGUlXCI6W1wiRGF0YVZpZXdcIixcInByb3RvdHlwZVwiXSxcIiVEYXRlUHJvdG90eXBlJVwiOltcIkRhdGVcIixcInByb3RvdHlwZVwiXSxcIiVFcnJvclByb3RvdHlwZSVcIjpbXCJFcnJvclwiLFwicHJvdG90eXBlXCJdLFwiJUV2YWxFcnJvclByb3RvdHlwZSVcIjpbXCJFdmFsRXJyb3JcIixcInByb3RvdHlwZVwiXSxcIiVGbG9hdDMyQXJyYXlQcm90b3R5cGUlXCI6W1wiRmxvYXQzMkFycmF5XCIsXCJwcm90b3R5cGVcIl0sXCIlRmxvYXQ2NEFycmF5UHJvdG90eXBlJVwiOltcIkZsb2F0NjRBcnJheVwiLFwicHJvdG90eXBlXCJdLFwiJUZ1bmN0aW9uUHJvdG90eXBlJVwiOltcIkZ1bmN0aW9uXCIsXCJwcm90b3R5cGVcIl0sXCIlR2VuZXJhdG9yJVwiOltcIkdlbmVyYXRvckZ1bmN0aW9uXCIsXCJwcm90b3R5cGVcIl0sXCIlR2VuZXJhdG9yUHJvdG90eXBlJVwiOltcIkdlbmVyYXRvckZ1bmN0aW9uXCIsXCJwcm90b3R5cGVcIixcInByb3RvdHlwZVwiXSxcIiVJbnQ4QXJyYXlQcm90b3R5cGUlXCI6W1wiSW50OEFycmF5XCIsXCJwcm90b3R5cGVcIl0sXCIlSW50MTZBcnJheVByb3RvdHlwZSVcIjpbXCJJbnQxNkFycmF5XCIsXCJwcm90b3R5cGVcIl0sXCIlSW50MzJBcnJheVByb3RvdHlwZSVcIjpbXCJJbnQzMkFycmF5XCIsXCJwcm90b3R5cGVcIl0sXCIlSlNPTlBhcnNlJVwiOltcIkpTT05cIixcInBhcnNlXCJdLFwiJUpTT05TdHJpbmdpZnklXCI6W1wiSlNPTlwiLFwic3RyaW5naWZ5XCJdLFwiJU1hcFByb3RvdHlwZSVcIjpbXCJNYXBcIixcInByb3RvdHlwZVwiXSxcIiVOdW1iZXJQcm90b3R5cGUlXCI6W1wiTnVtYmVyXCIsXCJwcm90b3R5cGVcIl0sXCIlT2JqZWN0UHJvdG90eXBlJVwiOltcIk9iamVjdFwiLFwicHJvdG90eXBlXCJdLFwiJU9ialByb3RvX3RvU3RyaW5nJVwiOltcIk9iamVjdFwiLFwicHJvdG90eXBlXCIsXCJ0b1N0cmluZ1wiXSxcIiVPYmpQcm90b192YWx1ZU9mJVwiOltcIk9iamVjdFwiLFwicHJvdG90eXBlXCIsXCJ2YWx1ZU9mXCJdLFwiJVByb21pc2VQcm90b3R5cGUlXCI6W1wiUHJvbWlzZVwiLFwicHJvdG90eXBlXCJdLFwiJVByb21pc2VQcm90b190aGVuJVwiOltcIlByb21pc2VcIixcInByb3RvdHlwZVwiLFwidGhlblwiXSxcIiVQcm9taXNlX2FsbCVcIjpbXCJQcm9taXNlXCIsXCJhbGxcIl0sXCIlUHJvbWlzZV9yZWplY3QlXCI6W1wiUHJvbWlzZVwiLFwicmVqZWN0XCJdLFwiJVByb21pc2VfcmVzb2x2ZSVcIjpbXCJQcm9taXNlXCIsXCJyZXNvbHZlXCJdLFwiJVJhbmdlRXJyb3JQcm90b3R5cGUlXCI6W1wiUmFuZ2VFcnJvclwiLFwicHJvdG90eXBlXCJdLFwiJVJlZmVyZW5jZUVycm9yUHJvdG90eXBlJVwiOltcIlJlZmVyZW5jZUVycm9yXCIsXCJwcm90b3R5cGVcIl0sXCIlUmVnRXhwUHJvdG90eXBlJVwiOltcIlJlZ0V4cFwiLFwicHJvdG90eXBlXCJdLFwiJVNldFByb3RvdHlwZSVcIjpbXCJTZXRcIixcInByb3RvdHlwZVwiXSxcIiVTaGFyZWRBcnJheUJ1ZmZlclByb3RvdHlwZSVcIjpbXCJTaGFyZWRBcnJheUJ1ZmZlclwiLFwicHJvdG90eXBlXCJdLFwiJVN0cmluZ1Byb3RvdHlwZSVcIjpbXCJTdHJpbmdcIixcInByb3RvdHlwZVwiXSxcIiVTeW1ib2xQcm90b3R5cGUlXCI6W1wiU3ltYm9sXCIsXCJwcm90b3R5cGVcIl0sXCIlU3ludGF4RXJyb3JQcm90b3R5cGUlXCI6W1wiU3ludGF4RXJyb3JcIixcInByb3RvdHlwZVwiXSxcIiVUeXBlZEFycmF5UHJvdG90eXBlJVwiOltcIlR5cGVkQXJyYXlcIixcInByb3RvdHlwZVwiXSxcIiVUeXBlRXJyb3JQcm90b3R5cGUlXCI6W1wiVHlwZUVycm9yXCIsXCJwcm90b3R5cGVcIl0sXCIlVWludDhBcnJheVByb3RvdHlwZSVcIjpbXCJVaW50OEFycmF5XCIsXCJwcm90b3R5cGVcIl0sXCIlVWludDhDbGFtcGVkQXJyYXlQcm90b3R5cGUlXCI6W1wiVWludDhDbGFtcGVkQXJyYXlcIixcInByb3RvdHlwZVwiXSxcIiVVaW50MTZBcnJheVByb3RvdHlwZSVcIjpbXCJVaW50MTZBcnJheVwiLFwicHJvdG90eXBlXCJdLFwiJVVpbnQzMkFycmF5UHJvdG90eXBlJVwiOltcIlVpbnQzMkFycmF5XCIsXCJwcm90b3R5cGVcIl0sXCIlVVJJRXJyb3JQcm90b3R5cGUlXCI6W1wiVVJJRXJyb3JcIixcInByb3RvdHlwZVwiXSxcIiVXZWFrTWFwUHJvdG90eXBlJVwiOltcIldlYWtNYXBcIixcInByb3RvdHlwZVwiXSxcIiVXZWFrU2V0UHJvdG90eXBlJVwiOltcIldlYWtTZXRcIixcInByb3RvdHlwZVwiXX0sJDE3Zjk2YjJmMWIyMDNiNjYkZXhwb3J0cz17fSwkMTdmOTZiMmYxYjIwM2I2NiR2YXIkY2FsbD1GdW5jdGlvbi5wcm90b3R5cGUuY2FsbCwkMTdmOTZiMmYxYjIwM2I2NiR2YXIkJGhhc093bj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5OyQxN2Y5NmIyZjFiMjAzYjY2JGV4cG9ydHM9JGNjMTBlNDI3OTRiNWY3ODkkZXhwb3J0cy5jYWxsKCQxN2Y5NmIyZjFiMjAzYjY2JHZhciRjYWxsLCQxN2Y5NmIyZjFiMjAzYjY2JHZhciQkaGFzT3duKTt2YXIgJGNmMWM2NGZkN2Y5ZjY4NGIkdmFyJCRjb25jYXQ9JGNjMTBlNDI3OTRiNWY3ODkkZXhwb3J0cy5jYWxsKCQ3M2FhMmEzZDUyY2U0MzBjJGV4cG9ydHMsQXJyYXkucHJvdG90eXBlLmNvbmNhdCksJGNmMWM2NGZkN2Y5ZjY4NGIkdmFyJCRzcGxpY2VBcHBseT0kY2MxMGU0Mjc5NGI1Zjc4OSRleHBvcnRzLmNhbGwoJDFhMTdhMGZjZTk2ZWZjNTEkZXhwb3J0cyxBcnJheS5wcm90b3R5cGUuc3BsaWNlKSwkY2YxYzY0ZmQ3ZjlmNjg0YiR2YXIkJHJlcGxhY2U9JGNjMTBlNDI3OTRiNWY3ODkkZXhwb3J0cy5jYWxsKCQ3M2FhMmEzZDUyY2U0MzBjJGV4cG9ydHMsU3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlKSwkY2YxYzY0ZmQ3ZjlmNjg0YiR2YXIkJHN0clNsaWNlPSRjYzEwZTQyNzk0YjVmNzg5JGV4cG9ydHMuY2FsbCgkNzNhYTJhM2Q1MmNlNDMwYyRleHBvcnRzLFN0cmluZy5wcm90b3R5cGUuc2xpY2UpLCRjZjFjNjRmZDdmOWY2ODRiJHZhciQkZXhlYz0kY2MxMGU0Mjc5NGI1Zjc4OSRleHBvcnRzLmNhbGwoJDczYWEyYTNkNTJjZTQzMGMkZXhwb3J0cyxSZWdFeHAucHJvdG90eXBlLmV4ZWMpLCRjZjFjNjRmZDdmOWY2ODRiJHZhciRyZVByb3BOYW1lPS9bXiUuW1xcXV0rfFxcWyg/OigtP1xcZCsoPzpcXC5cXGQrKT8pfChbXCInXSkoKD86KD8hXFwyKVteXFxcXF18XFxcXC4pKj8pXFwyKVxcXXwoPz0oPzpcXC58XFxbXFxdKSg/OlxcLnxcXFtcXF18JSQpKS9nLCRjZjFjNjRmZDdmOWY2ODRiJHZhciRyZUVzY2FwZUNoYXI9L1xcXFwoXFxcXCk/L2csJGNmMWM2NGZkN2Y5ZjY4NGIkdmFyJHN0cmluZ1RvUGF0aD1mdW5jdGlvbihlKXt2YXIgdD0kY2YxYzY0ZmQ3ZjlmNjg0YiR2YXIkJHN0clNsaWNlKGUsMCwxKSxyPSRjZjFjNjRmZDdmOWY2ODRiJHZhciQkc3RyU2xpY2UoZSwtMSk7aWYoXCIlXCI9PT10JiZcIiVcIiE9PXIpdGhyb3cgbmV3ICRmMmFlZTFjYmMyZTVlMTQ0JGV4cG9ydHMoXCJpbnZhbGlkIGludHJpbnNpYyBzeW50YXgsIGV4cGVjdGVkIGNsb3NpbmcgYCVgXCIpO2lmKFwiJVwiPT09ciYmXCIlXCIhPT10KXRocm93IG5ldyAkZjJhZWUxY2JjMmU1ZTE0NCRleHBvcnRzKFwiaW52YWxpZCBpbnRyaW5zaWMgc3ludGF4LCBleHBlY3RlZCBvcGVuaW5nIGAlYFwiKTt2YXIgbj1bXTtyZXR1cm4gJGNmMWM2NGZkN2Y5ZjY4NGIkdmFyJCRyZXBsYWNlKGUsJGNmMWM2NGZkN2Y5ZjY4NGIkdmFyJHJlUHJvcE5hbWUsZnVuY3Rpb24oZSx0LHIsaSl7bltuLmxlbmd0aF09cj8kY2YxYzY0ZmQ3ZjlmNjg0YiR2YXIkJHJlcGxhY2UoaSwkY2YxYzY0ZmQ3ZjlmNjg0YiR2YXIkcmVFc2NhcGVDaGFyLFwiJDFcIik6dHx8ZX0pLG59LCRjZjFjNjRmZDdmOWY2ODRiJHZhciRnZXRCYXNlSW50cmluc2ljPWZ1bmN0aW9uKGUsdCl7dmFyIHIsbj1lO2lmKCQxN2Y5NmIyZjFiMjAzYjY2JGV4cG9ydHMoJGNmMWM2NGZkN2Y5ZjY4NGIkdmFyJExFR0FDWV9BTElBU0VTLG4pJiYobj1cIiVcIisocj0kY2YxYzY0ZmQ3ZjlmNjg0YiR2YXIkTEVHQUNZX0FMSUFTRVNbbl0pWzBdK1wiJVwiKSwkMTdmOTZiMmYxYjIwM2I2NiRleHBvcnRzKCRjZjFjNjRmZDdmOWY2ODRiJHZhciRJTlRSSU5TSUNTLG4pKXt2YXIgaT0kY2YxYzY0ZmQ3ZjlmNjg0YiR2YXIkSU5UUklOU0lDU1tuXTtpZihpPT09JGNmMWM2NGZkN2Y5ZjY4NGIkdmFyJG5lZWRzRXZhbCYmKGk9JGNmMWM2NGZkN2Y5ZjY4NGIkdmFyJGRvRXZhbChuKSksdm9pZCAwPT09aSYmIXQpdGhyb3cgbmV3ICQ4MWYxNGY2NDU3NjVkMjdiJGV4cG9ydHMoXCJpbnRyaW5zaWMgXCIrZStcIiBleGlzdHMsIGJ1dCBpcyBub3QgYXZhaWxhYmxlLiBQbGVhc2UgZmlsZSBhbiBpc3N1ZSFcIik7cmV0dXJue2FsaWFzOnIsbmFtZTpuLHZhbHVlOml9fXRocm93IG5ldyAkZjJhZWUxY2JjMmU1ZTE0NCRleHBvcnRzKFwiaW50cmluc2ljIFwiK2UrXCIgZG9lcyBub3QgZXhpc3QhXCIpfTskY2YxYzY0ZmQ3ZjlmNjg0YiRleHBvcnRzPWZ1bmN0aW9uKGUsdCl7aWYoXCJzdHJpbmdcIiE9dHlwZW9mIGV8fDA9PT1lLmxlbmd0aCl0aHJvdyBuZXcgJDgxZjE0ZjY0NTc2NWQyN2IkZXhwb3J0cyhcImludHJpbnNpYyBuYW1lIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nXCIpO2lmKGFyZ3VtZW50cy5sZW5ndGg+MSYmXCJib29sZWFuXCIhPXR5cGVvZiB0KXRocm93IG5ldyAkODFmMTRmNjQ1NzY1ZDI3YiRleHBvcnRzKCdcImFsbG93TWlzc2luZ1wiIGFyZ3VtZW50IG11c3QgYmUgYSBib29sZWFuJyk7aWYobnVsbD09PSRjZjFjNjRmZDdmOWY2ODRiJHZhciQkZXhlYygvXiU/W14lXSolPyQvLGUpKXRocm93IG5ldyAkZjJhZWUxY2JjMmU1ZTE0NCRleHBvcnRzKFwiYCVgIG1heSBub3QgYmUgcHJlc2VudCBhbnl3aGVyZSBidXQgYXQgdGhlIGJlZ2lubmluZyBhbmQgZW5kIG9mIHRoZSBpbnRyaW5zaWMgbmFtZVwiKTt2YXIgcj0kY2YxYzY0ZmQ3ZjlmNjg0YiR2YXIkc3RyaW5nVG9QYXRoKGUpLG49ci5sZW5ndGg+MD9yWzBdOlwiXCIsaT0kY2YxYzY0ZmQ3ZjlmNjg0YiR2YXIkZ2V0QmFzZUludHJpbnNpYyhcIiVcIituK1wiJVwiLHQpLGE9aS5uYW1lLG89aS52YWx1ZSxzPSExLGw9aS5hbGlhcztsJiYobj1sWzBdLCRjZjFjNjRmZDdmOWY2ODRiJHZhciQkc3BsaWNlQXBwbHkociwkY2YxYzY0ZmQ3ZjlmNjg0YiR2YXIkJGNvbmNhdChbMCwxXSxsKSkpO2Zvcih2YXIgdT0xLGM9ITA7dTxyLmxlbmd0aDt1Kz0xKXt2YXIgcD1yW3VdLGQ9JGNmMWM2NGZkN2Y5ZjY4NGIkdmFyJCRzdHJTbGljZShwLDAsMSksaD0kY2YxYzY0ZmQ3ZjlmNjg0YiR2YXIkJHN0clNsaWNlKHAsLTEpO2lmKCgnXCInPT09ZHx8XCInXCI9PT1kfHxcImBcIj09PWR8fCdcIic9PT1ofHxcIidcIj09PWh8fFwiYFwiPT09aCkmJmQhPT1oKXRocm93IG5ldyAkZjJhZWUxY2JjMmU1ZTE0NCRleHBvcnRzKFwicHJvcGVydHkgbmFtZXMgd2l0aCBxdW90ZXMgbXVzdCBoYXZlIG1hdGNoaW5nIHF1b3Rlc1wiKTtpZihcImNvbnN0cnVjdG9yXCIhPT1wJiZjfHwocz0hMCksbis9XCIuXCIrcCwkMTdmOTZiMmYxYjIwM2I2NiRleHBvcnRzKCRjZjFjNjRmZDdmOWY2ODRiJHZhciRJTlRSSU5TSUNTLGE9XCIlXCIrbitcIiVcIikpbz0kY2YxYzY0ZmQ3ZjlmNjg0YiR2YXIkSU5UUklOU0lDU1thXTtlbHNlIGlmKG51bGwhPW8pe2lmKCEocCBpbiBvKSl7aWYoIXQpdGhyb3cgbmV3ICQ4MWYxNGY2NDU3NjVkMjdiJGV4cG9ydHMoXCJiYXNlIGludHJpbnNpYyBmb3IgXCIrZStcIiBleGlzdHMsIGJ1dCB0aGUgcHJvcGVydHkgaXMgbm90IGF2YWlsYWJsZS5cIik7cmV0dXJufWlmKCQ2NWQ2NmM2NDdkZGVhYzMyJGV4cG9ydHMmJnUrMT49ci5sZW5ndGgpe3ZhciBmPSQ2NWQ2NmM2NDdkZGVhYzMyJGV4cG9ydHMobyxwKTtvPShjPSEhZikmJlwiZ2V0XCJpbiBmJiYhKFwib3JpZ2luYWxWYWx1ZVwiaW4gZi5nZXQpP2YuZ2V0Om9bcF19ZWxzZSBjPSQxN2Y5NmIyZjFiMjAzYjY2JGV4cG9ydHMobyxwKSxvPW9bcF07YyYmIXMmJigkY2YxYzY0ZmQ3ZjlmNjg0YiR2YXIkSU5UUklOU0lDU1thXT1vKX19cmV0dXJuIG99O3ZhciAkZmJkOTZjNTE1NWFhNTA4OSRleHBvcnRzPXt9LCRmYmQ5NmM1MTU1YWE1MDg5JHZhciQkaW5kZXhPZj0kZWM3ZTJjNTI5NWE1MjkxMiRleHBvcnRzKFskY2YxYzY0ZmQ3ZjlmNjg0YiRleHBvcnRzKFwiJVN0cmluZy5wcm90b3R5cGUuaW5kZXhPZiVcIildKTskZmJkOTZjNTE1NWFhNTA4OSRleHBvcnRzPWZ1bmN0aW9uKGUsdCl7dmFyIHI9JGNmMWM2NGZkN2Y5ZjY4NGIkZXhwb3J0cyhlLCEhdCk7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YgciYmJGZiZDk2YzUxNTVhYTUwODkkdmFyJCRpbmRleE9mKGUsXCIucHJvdG90eXBlLlwiKT4tMT8kZWM3ZTJjNTI5NWE1MjkxMiRleHBvcnRzKFtyXSk6cn07dmFyICQ1YTA4YTkyNTU4N2Y4MTA4JHZhciQkTWFwPSRjZjFjNjRmZDdmOWY2ODRiJGV4cG9ydHMoXCIlTWFwJVwiLCEwKSwkNWEwOGE5MjU1ODdmODEwOCR2YXIkJG1hcEdldD0kZmJkOTZjNTE1NWFhNTA4OSRleHBvcnRzKFwiTWFwLnByb3RvdHlwZS5nZXRcIiwhMCksJDVhMDhhOTI1NTg3ZjgxMDgkdmFyJCRtYXBTZXQ9JGZiZDk2YzUxNTVhYTUwODkkZXhwb3J0cyhcIk1hcC5wcm90b3R5cGUuc2V0XCIsITApLCQ1YTA4YTkyNTU4N2Y4MTA4JHZhciQkbWFwSGFzPSRmYmQ5NmM1MTU1YWE1MDg5JGV4cG9ydHMoXCJNYXAucHJvdG90eXBlLmhhc1wiLCEwKSwkNWEwOGE5MjU1ODdmODEwOCR2YXIkJG1hcERlbGV0ZT0kZmJkOTZjNTE1NWFhNTA4OSRleHBvcnRzKFwiTWFwLnByb3RvdHlwZS5kZWxldGVcIiwhMCksJDVhMDhhOTI1NTg3ZjgxMDgkdmFyJCRtYXBTaXplPSRmYmQ5NmM1MTU1YWE1MDg5JGV4cG9ydHMoXCJNYXAucHJvdG90eXBlLnNpemVcIiwhMCk7JDVhMDhhOTI1NTg3ZjgxMDgkZXhwb3J0cz0hISQ1YTA4YTkyNTU4N2Y4MTA4JHZhciQkTWFwJiZmdW5jdGlvbigpe3ZhciBlLHQ9e2Fzc2VydDpmdW5jdGlvbihlKXtpZighdC5oYXMoZSkpdGhyb3cgbmV3ICQ4MWYxNGY2NDU3NjVkMjdiJGV4cG9ydHMoXCJTaWRlIGNoYW5uZWwgZG9lcyBub3QgY29udGFpbiBcIiskNjEwYmNmNmFkODJjNGZkYiRleHBvcnRzKGUpKX0sZGVsZXRlOmZ1bmN0aW9uKHQpe2lmKGUpe3ZhciByPSQ1YTA4YTkyNTU4N2Y4MTA4JHZhciQkbWFwRGVsZXRlKGUsdCk7cmV0dXJuIDA9PT0kNWEwOGE5MjU1ODdmODEwOCR2YXIkJG1hcFNpemUoZSkmJihlPXZvaWQgMCkscn1yZXR1cm4hMX0sZ2V0OmZ1bmN0aW9uKHQpe2lmKGUpcmV0dXJuICQ1YTA4YTkyNTU4N2Y4MTA4JHZhciQkbWFwR2V0KGUsdCl9LGhhczpmdW5jdGlvbih0KXtyZXR1cm4hIWUmJiQ1YTA4YTkyNTU4N2Y4MTA4JHZhciQkbWFwSGFzKGUsdCl9LHNldDpmdW5jdGlvbih0LHIpe2V8fChlPW5ldyAkNWEwOGE5MjU1ODdmODEwOCR2YXIkJE1hcCksJDVhMDhhOTI1NTg3ZjgxMDgkdmFyJCRtYXBTZXQoZSx0LHIpfX07cmV0dXJuIHR9O3ZhciAkM2VjMDVlMzIwOWRhNTg0MCRleHBvcnRzPXt9LCQzZWMwNWUzMjA5ZGE1ODQwJHZhciQkV2Vha01hcD0kY2YxYzY0ZmQ3ZjlmNjg0YiRleHBvcnRzKFwiJVdlYWtNYXAlXCIsITApLCQzZWMwNWUzMjA5ZGE1ODQwJHZhciQkd2Vha01hcEdldD0kZmJkOTZjNTE1NWFhNTA4OSRleHBvcnRzKFwiV2Vha01hcC5wcm90b3R5cGUuZ2V0XCIsITApLCQzZWMwNWUzMjA5ZGE1ODQwJHZhciQkd2Vha01hcFNldD0kZmJkOTZjNTE1NWFhNTA4OSRleHBvcnRzKFwiV2Vha01hcC5wcm90b3R5cGUuc2V0XCIsITApLCQzZWMwNWUzMjA5ZGE1ODQwJHZhciQkd2Vha01hcEhhcz0kZmJkOTZjNTE1NWFhNTA4OSRleHBvcnRzKFwiV2Vha01hcC5wcm90b3R5cGUuaGFzXCIsITApLCQzZWMwNWUzMjA5ZGE1ODQwJHZhciQkd2Vha01hcERlbGV0ZT0kZmJkOTZjNTE1NWFhNTA4OSRleHBvcnRzKFwiV2Vha01hcC5wcm90b3R5cGUuZGVsZXRlXCIsITApOyQzZWMwNWUzMjA5ZGE1ODQwJGV4cG9ydHM9JDNlYzA1ZTMyMDlkYTU4NDAkdmFyJCRXZWFrTWFwP2Z1bmN0aW9uKCl7dmFyIGUsdCxyPXthc3NlcnQ6ZnVuY3Rpb24oZSl7aWYoIXIuaGFzKGUpKXRocm93IG5ldyAkODFmMTRmNjQ1NzY1ZDI3YiRleHBvcnRzKFwiU2lkZSBjaGFubmVsIGRvZXMgbm90IGNvbnRhaW4gXCIrJDYxMGJjZjZhZDgyYzRmZGIkZXhwb3J0cyhlKSl9LGRlbGV0ZTpmdW5jdGlvbihyKXtpZigkM2VjMDVlMzIwOWRhNTg0MCR2YXIkJFdlYWtNYXAmJnImJihcIm9iamVjdFwiPT10eXBlb2Ygcnx8XCJmdW5jdGlvblwiPT10eXBlb2Ygcikpe2lmKGUpcmV0dXJuICQzZWMwNWUzMjA5ZGE1ODQwJHZhciQkd2Vha01hcERlbGV0ZShlLHIpfWVsc2UgaWYoJDVhMDhhOTI1NTg3ZjgxMDgkZXhwb3J0cyYmdClyZXR1cm4gdC5kZWxldGUocik7cmV0dXJuITF9LGdldDpmdW5jdGlvbihyKXtyZXR1cm4gJDNlYzA1ZTMyMDlkYTU4NDAkdmFyJCRXZWFrTWFwJiZyJiYoXCJvYmplY3RcIj09dHlwZW9mIHJ8fFwiZnVuY3Rpb25cIj09dHlwZW9mIHIpJiZlPyQzZWMwNWUzMjA5ZGE1ODQwJHZhciQkd2Vha01hcEdldChlLHIpOnQmJnQuZ2V0KHIpfSxoYXM6ZnVuY3Rpb24ocil7cmV0dXJuICQzZWMwNWUzMjA5ZGE1ODQwJHZhciQkV2Vha01hcCYmciYmKFwib2JqZWN0XCI9PXR5cGVvZiByfHxcImZ1bmN0aW9uXCI9PXR5cGVvZiByKSYmZT8kM2VjMDVlMzIwOWRhNTg0MCR2YXIkJHdlYWtNYXBIYXMoZSxyKTohIXQmJnQuaGFzKHIpfSxzZXQ6ZnVuY3Rpb24ocixuKXskM2VjMDVlMzIwOWRhNTg0MCR2YXIkJFdlYWtNYXAmJnImJihcIm9iamVjdFwiPT10eXBlb2Ygcnx8XCJmdW5jdGlvblwiPT10eXBlb2Ygcik/KGV8fChlPW5ldyAkM2VjMDVlMzIwOWRhNTg0MCR2YXIkJFdlYWtNYXApLCQzZWMwNWUzMjA5ZGE1ODQwJHZhciQkd2Vha01hcFNldChlLHIsbikpOiQ1YTA4YTkyNTU4N2Y4MTA4JGV4cG9ydHMmJih0fHwodD0kNWEwOGE5MjU1ODdmODEwOCRleHBvcnRzKCkpLHQuc2V0KHIsbikpfX07cmV0dXJuIHJ9OiQ1YTA4YTkyNTU4N2Y4MTA4JGV4cG9ydHM7dmFyICQ4Mjg4NTlkYzhjNTkyOGRkJHZhciRtYWtlQ2hhbm5lbD0kM2VjMDVlMzIwOWRhNTg0MCRleHBvcnRzfHwkNWEwOGE5MjU1ODdmODEwOCRleHBvcnRzfHwkZDg2YTA1NGZhNjZjNTMwNSRleHBvcnRzOyQ4Mjg4NTlkYzhjNTkyOGRkJGV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgZSx0PXthc3NlcnQ6ZnVuY3Rpb24oZSl7aWYoIXQuaGFzKGUpKXRocm93IG5ldyAkODFmMTRmNjQ1NzY1ZDI3YiRleHBvcnRzKFwiU2lkZSBjaGFubmVsIGRvZXMgbm90IGNvbnRhaW4gXCIrJDYxMGJjZjZhZDgyYzRmZGIkZXhwb3J0cyhlKSl9LGRlbGV0ZTpmdW5jdGlvbih0KXtyZXR1cm4hIWUmJmUuZGVsZXRlKHQpfSxnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGUmJmUuZ2V0KHQpfSxoYXM6ZnVuY3Rpb24odCl7cmV0dXJuISFlJiZlLmhhcyh0KX0sc2V0OmZ1bmN0aW9uKHQscil7ZXx8KGU9JDgyODg1OWRjOGM1OTI4ZGQkdmFyJG1ha2VDaGFubmVsKCkpLGUuc2V0KHQscil9fTtyZXR1cm4gdH07dmFyICQzNjZkOTFhMjNlNjdhN2FhJGV4cG9ydHM9e30sJGMyOWM0YzkxZDY5NTk1YTgkZXhwb3J0cz17fSwkYzI5YzRjOTFkNjk1OTVhOCR2YXIkcmVwbGFjZT1TdHJpbmcucHJvdG90eXBlLnJlcGxhY2UsJGMyOWM0YzkxZDY5NTk1YTgkdmFyJHBlcmNlbnRUd2VudGllcz0vJTIwL2csJGMyOWM0YzkxZDY5NTk1YTgkdmFyJEZvcm1hdD17UkZDMTczODpcIlJGQzE3MzhcIixSRkMzOTg2OlwiUkZDMzk4NlwifTskYzI5YzRjOTFkNjk1OTVhOCRleHBvcnRzPXtkZWZhdWx0OiRjMjljNGM5MWQ2OTU5NWE4JHZhciRGb3JtYXQuUkZDMzk4Nixmb3JtYXR0ZXJzOntSRkMxNzM4OmZ1bmN0aW9uKGUpe3JldHVybiAkYzI5YzRjOTFkNjk1OTVhOCR2YXIkcmVwbGFjZS5jYWxsKGUsJGMyOWM0YzkxZDY5NTk1YTgkdmFyJHBlcmNlbnRUd2VudGllcyxcIitcIil9LFJGQzM5ODY6ZnVuY3Rpb24oZSl7cmV0dXJuIFN0cmluZyhlKX19LFJGQzE3Mzg6JGMyOWM0YzkxZDY5NTk1YTgkdmFyJEZvcm1hdC5SRkMxNzM4LFJGQzM5ODY6JGMyOWM0YzkxZDY5NTk1YTgkdmFyJEZvcm1hdC5SRkMzOTg2fTt2YXIgJDM2NmQ5MWEyM2U2N2E3YWEkdmFyJGhhcz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LCQzNjZkOTFhMjNlNjdhN2FhJHZhciRpc0FycmF5PUFycmF5LmlzQXJyYXksJDM2NmQ5MWEyM2U2N2E3YWEkdmFyJGhleFRhYmxlPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLHQ9MDt0PDI1NjsrK3QpZS5wdXNoKFwiJVwiKygodDwxNj9cIjBcIjpcIlwiKSt0LnRvU3RyaW5nKDE2KSkudG9VcHBlckNhc2UoKSk7cmV0dXJuIGV9KCksJDM2NmQ5MWEyM2U2N2E3YWEkdmFyJGNvbXBhY3RRdWV1ZT1mdW5jdGlvbihlKXtmb3IoO2UubGVuZ3RoPjE7KXt2YXIgdD1lLnBvcCgpLHI9dC5vYmpbdC5wcm9wXTtpZigkMzY2ZDkxYTIzZTY3YTdhYSR2YXIkaXNBcnJheShyKSl7Zm9yKHZhciBuPVtdLGk9MDtpPHIubGVuZ3RoOysraSl2b2lkIDAhPT1yW2ldJiZuLnB1c2gocltpXSk7dC5vYmpbdC5wcm9wXT1ufX19LCQzNjZkOTFhMjNlNjdhN2FhJHZhciRhcnJheVRvT2JqZWN0PWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByPXQmJnQucGxhaW5PYmplY3RzP3tfX3Byb3RvX186bnVsbH06e30sbj0wO248ZS5sZW5ndGg7KytuKXZvaWQgMCE9PWVbbl0mJihyW25dPWVbbl0pO3JldHVybiByfSwkMzY2ZDkxYTIzZTY3YTdhYSR2YXIkbWVyZ2U9ZnVuY3Rpb24gZSh0LHIsbil7aWYoIXIpcmV0dXJuIHQ7aWYoXCJvYmplY3RcIiE9dHlwZW9mIHImJlwiZnVuY3Rpb25cIiE9dHlwZW9mIHIpe2lmKCQzNjZkOTFhMjNlNjdhN2FhJHZhciRpc0FycmF5KHQpKXQucHVzaChyKTtlbHNle2lmKCF0fHxcIm9iamVjdFwiIT10eXBlb2YgdClyZXR1cm5bdCxyXTsobiYmKG4ucGxhaW5PYmplY3RzfHxuLmFsbG93UHJvdG90eXBlcyl8fCEkMzY2ZDkxYTIzZTY3YTdhYSR2YXIkaGFzLmNhbGwoT2JqZWN0LnByb3RvdHlwZSxyKSkmJih0W3JdPSEwKX1yZXR1cm4gdH1pZighdHx8XCJvYmplY3RcIiE9dHlwZW9mIHQpcmV0dXJuW3RdLmNvbmNhdChyKTt2YXIgaT10O3JldHVybigkMzY2ZDkxYTIzZTY3YTdhYSR2YXIkaXNBcnJheSh0KSYmISQzNjZkOTFhMjNlNjdhN2FhJHZhciRpc0FycmF5KHIpJiYoaT0kMzY2ZDkxYTIzZTY3YTdhYSR2YXIkYXJyYXlUb09iamVjdCh0LG4pKSwkMzY2ZDkxYTIzZTY3YTdhYSR2YXIkaXNBcnJheSh0KSYmJDM2NmQ5MWEyM2U2N2E3YWEkdmFyJGlzQXJyYXkocikpPyhyLmZvckVhY2goZnVuY3Rpb24ocixpKXtpZigkMzY2ZDkxYTIzZTY3YTdhYSR2YXIkaGFzLmNhbGwodCxpKSl7dmFyIGE9dFtpXTthJiZcIm9iamVjdFwiPT10eXBlb2YgYSYmciYmXCJvYmplY3RcIj09dHlwZW9mIHI/dFtpXT1lKGEscixuKTp0LnB1c2gocil9ZWxzZSB0W2ldPXJ9KSx0KTpPYmplY3Qua2V5cyhyKS5yZWR1Y2UoZnVuY3Rpb24odCxpKXt2YXIgYT1yW2ldO3JldHVybiAkMzY2ZDkxYTIzZTY3YTdhYSR2YXIkaGFzLmNhbGwodCxpKT90W2ldPWUodFtpXSxhLG4pOnRbaV09YSx0fSxpKX0sJDM2NmQ5MWEyM2U2N2E3YWEkdmFyJGFzc2lnbj1mdW5jdGlvbihlLHQpe3JldHVybiBPYmplY3Qua2V5cyh0KS5yZWR1Y2UoZnVuY3Rpb24oZSxyKXtyZXR1cm4gZVtyXT10W3JdLGV9LGUpfSwkMzY2ZDkxYTIzZTY3YTdhYSR2YXIkZGVjb2RlPWZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1lLnJlcGxhY2UoL1xcKy9nLFwiIFwiKTtpZihcImlzby04ODU5LTFcIj09PXIpcmV0dXJuIG4ucmVwbGFjZSgvJVswLTlhLWZdezJ9L2dpLHVuZXNjYXBlKTt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChuKX1jYXRjaChlKXtyZXR1cm4gbn19LCQzNjZkOTFhMjNlNjdhN2FhJHZhciRsaW1pdD0xMDI0LCQzNjZkOTFhMjNlNjdhN2FhJHZhciRlbmNvZGU9ZnVuY3Rpb24oZSx0LHIsbixpKXtpZigwPT09ZS5sZW5ndGgpcmV0dXJuIGU7dmFyIGE9ZTtpZihcInN5bWJvbFwiPT10eXBlb2YgZT9hPVN5bWJvbC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKTpcInN0cmluZ1wiIT10eXBlb2YgZSYmKGE9U3RyaW5nKGUpKSxcImlzby04ODU5LTFcIj09PXIpcmV0dXJuIGVzY2FwZShhKS5yZXBsYWNlKC8ldVswLTlhLWZdezR9L2dpLGZ1bmN0aW9uKGUpe3JldHVyblwiJTI2JTIzXCIrcGFyc2VJbnQoZS5zbGljZSgyKSwxNikrXCIlM0JcIn0pO2Zvcih2YXIgbz1cIlwiLHM9MDtzPGEubGVuZ3RoO3MrPSQzNjZkOTFhMjNlNjdhN2FhJHZhciRsaW1pdCl7Zm9yKHZhciBsPWEubGVuZ3RoPj0kMzY2ZDkxYTIzZTY3YTdhYSR2YXIkbGltaXQ/YS5zbGljZShzLHMrJDM2NmQ5MWEyM2U2N2E3YWEkdmFyJGxpbWl0KTphLHU9W10sYz0wO2M8bC5sZW5ndGg7KytjKXt2YXIgcD1sLmNoYXJDb2RlQXQoYyk7aWYoNDU9PT1wfHw0Nj09PXB8fDk1PT09cHx8MTI2PT09cHx8cD49NDgmJnA8PTU3fHxwPj02NSYmcDw9OTB8fHA+PTk3JiZwPD0xMjJ8fGk9PT0kYzI5YzRjOTFkNjk1OTVhOCRleHBvcnRzLlJGQzE3MzgmJig0MD09PXB8fDQxPT09cCkpe3VbdS5sZW5ndGhdPWwuY2hhckF0KGMpO2NvbnRpbnVlfWlmKHA8MTI4KXt1W3UubGVuZ3RoXT0kMzY2ZDkxYTIzZTY3YTdhYSR2YXIkaGV4VGFibGVbcF07Y29udGludWV9aWYocDwyMDQ4KXt1W3UubGVuZ3RoXT0kMzY2ZDkxYTIzZTY3YTdhYSR2YXIkaGV4VGFibGVbMTkyfHA+PjZdKyQzNjZkOTFhMjNlNjdhN2FhJHZhciRoZXhUYWJsZVsxMjh8NjMmcF07Y29udGludWV9aWYocDw1NTI5Nnx8cD49NTczNDQpe3VbdS5sZW5ndGhdPSQzNjZkOTFhMjNlNjdhN2FhJHZhciRoZXhUYWJsZVsyMjR8cD4+MTJdKyQzNjZkOTFhMjNlNjdhN2FhJHZhciRoZXhUYWJsZVsxMjh8cD4+NiY2M10rJDM2NmQ5MWEyM2U2N2E3YWEkdmFyJGhleFRhYmxlWzEyOHw2MyZwXTtjb250aW51ZX1jKz0xLHA9NjU1MzYrKCgxMDIzJnApPDwxMHwxMDIzJmwuY2hhckNvZGVBdChjKSksdVt1Lmxlbmd0aF09JDM2NmQ5MWEyM2U2N2E3YWEkdmFyJGhleFRhYmxlWzI0MHxwPj4xOF0rJDM2NmQ5MWEyM2U2N2E3YWEkdmFyJGhleFRhYmxlWzEyOHxwPj4xMiY2M10rJDM2NmQ5MWEyM2U2N2E3YWEkdmFyJGhleFRhYmxlWzEyOHxwPj42JjYzXSskMzY2ZDkxYTIzZTY3YTdhYSR2YXIkaGV4VGFibGVbMTI4fDYzJnBdfW8rPXUuam9pbihcIlwiKX1yZXR1cm4gb30sJDM2NmQ5MWEyM2U2N2E3YWEkdmFyJGNvbXBhY3Q9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PVt7b2JqOntvOmV9LHByb3A6XCJvXCJ9XSxyPVtdLG49MDtuPHQubGVuZ3RoOysrbilmb3IodmFyIGk9dFtuXSxhPWkub2JqW2kucHJvcF0sbz1PYmplY3Qua2V5cyhhKSxzPTA7czxvLmxlbmd0aDsrK3Mpe3ZhciBsPW9bc10sdT1hW2xdO1wib2JqZWN0XCI9PXR5cGVvZiB1JiZudWxsIT09dSYmLTE9PT1yLmluZGV4T2YodSkmJih0LnB1c2goe29iajphLHByb3A6bH0pLHIucHVzaCh1KSl9cmV0dXJuICQzNjZkOTFhMjNlNjdhN2FhJHZhciRjb21wYWN0UXVldWUodCksZX0sJDM2NmQ5MWEyM2U2N2E3YWEkdmFyJGlzUmVnRXhwPWZ1bmN0aW9uKGUpe3JldHVyblwiW29iamVjdCBSZWdFeHBdXCI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSl9LCQzNjZkOTFhMjNlNjdhN2FhJHZhciRpc0J1ZmZlcj1mdW5jdGlvbihlKXtyZXR1cm4hIWUmJlwib2JqZWN0XCI9PXR5cGVvZiBlJiYhIShlLmNvbnN0cnVjdG9yJiZlLmNvbnN0cnVjdG9yLmlzQnVmZmVyJiZlLmNvbnN0cnVjdG9yLmlzQnVmZmVyKGUpKX0sJDM2NmQ5MWEyM2U2N2E3YWEkdmFyJGNvbWJpbmU9ZnVuY3Rpb24oZSx0KXtyZXR1cm5bXS5jb25jYXQoZSx0KX0sJDM2NmQ5MWEyM2U2N2E3YWEkdmFyJG1heWJlTWFwPWZ1bmN0aW9uKGUsdCl7aWYoJDM2NmQ5MWEyM2U2N2E3YWEkdmFyJGlzQXJyYXkoZSkpe2Zvcih2YXIgcj1bXSxuPTA7bjxlLmxlbmd0aDtuKz0xKXIucHVzaCh0KGVbbl0pKTtyZXR1cm4gcn1yZXR1cm4gdChlKX07JDM2NmQ5MWEyM2U2N2E3YWEkZXhwb3J0cz17YXJyYXlUb09iamVjdDokMzY2ZDkxYTIzZTY3YTdhYSR2YXIkYXJyYXlUb09iamVjdCxhc3NpZ246JDM2NmQ5MWEyM2U2N2E3YWEkdmFyJGFzc2lnbixjb21iaW5lOiQzNjZkOTFhMjNlNjdhN2FhJHZhciRjb21iaW5lLGNvbXBhY3Q6JDM2NmQ5MWEyM2U2N2E3YWEkdmFyJGNvbXBhY3QsZGVjb2RlOiQzNjZkOTFhMjNlNjdhN2FhJHZhciRkZWNvZGUsZW5jb2RlOiQzNjZkOTFhMjNlNjdhN2FhJHZhciRlbmNvZGUsaXNCdWZmZXI6JDM2NmQ5MWEyM2U2N2E3YWEkdmFyJGlzQnVmZmVyLGlzUmVnRXhwOiQzNjZkOTFhMjNlNjdhN2FhJHZhciRpc1JlZ0V4cCxtYXliZU1hcDokMzY2ZDkxYTIzZTY3YTdhYSR2YXIkbWF5YmVNYXAsbWVyZ2U6JDM2NmQ5MWEyM2U2N2E3YWEkdmFyJG1lcmdlfTt2YXIgJGYxMWNkNTA4ZTNmMmU5NGMkdmFyJGhhcz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LCRmMTFjZDUwOGUzZjJlOTRjJHZhciRhcnJheVByZWZpeEdlbmVyYXRvcnM9e2JyYWNrZXRzOmZ1bmN0aW9uKGUpe3JldHVybiBlK1wiW11cIn0sY29tbWE6XCJjb21tYVwiLGluZGljZXM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZStcIltcIit0K1wiXVwifSxyZXBlYXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGV9fSwkZjExY2Q1MDhlM2YyZTk0YyR2YXIkaXNBcnJheT1BcnJheS5pc0FycmF5LCRmMTFjZDUwOGUzZjJlOTRjJHZhciRwdXNoPUFycmF5LnByb3RvdHlwZS5wdXNoLCRmMTFjZDUwOGUzZjJlOTRjJHZhciRwdXNoVG9BcnJheT1mdW5jdGlvbihlLHQpeyRmMTFjZDUwOGUzZjJlOTRjJHZhciRwdXNoLmFwcGx5KGUsJGYxMWNkNTA4ZTNmMmU5NGMkdmFyJGlzQXJyYXkodCk/dDpbdF0pfSwkZjExY2Q1MDhlM2YyZTk0YyR2YXIkdG9JU089RGF0ZS5wcm90b3R5cGUudG9JU09TdHJpbmcsJGYxMWNkNTA4ZTNmMmU5NGMkdmFyJGRlZmF1bHRGb3JtYXQ9JGMyOWM0YzkxZDY5NTk1YTgkZXhwb3J0cy5kZWZhdWx0LCRmMTFjZDUwOGUzZjJlOTRjJHZhciRkZWZhdWx0cz17YWRkUXVlcnlQcmVmaXg6ITEsYWxsb3dEb3RzOiExLGFsbG93RW1wdHlBcnJheXM6ITEsYXJyYXlGb3JtYXQ6XCJpbmRpY2VzXCIsY2hhcnNldDpcInV0Zi04XCIsY2hhcnNldFNlbnRpbmVsOiExLGNvbW1hUm91bmRUcmlwOiExLGRlbGltaXRlcjpcIiZcIixlbmNvZGU6ITAsZW5jb2RlRG90SW5LZXlzOiExLGVuY29kZXI6JDM2NmQ5MWEyM2U2N2E3YWEkZXhwb3J0cy5lbmNvZGUsZW5jb2RlVmFsdWVzT25seTohMSxmaWx0ZXI6dm9pZCAwLGZvcm1hdDokZjExY2Q1MDhlM2YyZTk0YyR2YXIkZGVmYXVsdEZvcm1hdCxmb3JtYXR0ZXI6JGMyOWM0YzkxZDY5NTk1YTgkZXhwb3J0cy5mb3JtYXR0ZXJzWyRmMTFjZDUwOGUzZjJlOTRjJHZhciRkZWZhdWx0Rm9ybWF0XSxpbmRpY2VzOiExLHNlcmlhbGl6ZURhdGU6ZnVuY3Rpb24oZSl7cmV0dXJuICRmMTFjZDUwOGUzZjJlOTRjJHZhciR0b0lTTy5jYWxsKGUpfSxza2lwTnVsbHM6ITEsc3RyaWN0TnVsbEhhbmRsaW5nOiExfSwkZjExY2Q1MDhlM2YyZTk0YyR2YXIkaXNOb25OdWxsaXNoUHJpbWl0aXZlPWZ1bmN0aW9uKGUpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiBlfHxcIm51bWJlclwiPT10eXBlb2YgZXx8XCJib29sZWFuXCI9PXR5cGVvZiBlfHxcInN5bWJvbFwiPT10eXBlb2YgZXx8XCJiaWdpbnRcIj09dHlwZW9mIGV9LCRmMTFjZDUwOGUzZjJlOTRjJHZhciRzZW50aW5lbD17fSwkZjExY2Q1MDhlM2YyZTk0YyR2YXIkc3RyaW5naWZ5PWZ1bmN0aW9uIGUodCxyLG4saSxhLG8scyxsLHUsYyxwLGQsaCxmLG0sZyx5LF8pe2Zvcih2YXIgdixiPXQsdz1fLFM9MCxFPSExO3ZvaWQgMCE9PSh3PXcuZ2V0KCRmMTFjZDUwOGUzZjJlOTRjJHZhciRzZW50aW5lbCkpJiYhRTspe3ZhciBBPXcuZ2V0KHQpO2lmKFMrPTEsdm9pZCAwIT09QSl7aWYoQT09PVMpdGhyb3cgUmFuZ2VFcnJvcihcIkN5Y2xpYyBvYmplY3QgdmFsdWVcIik7RT0hMH12b2lkIDA9PT13LmdldCgkZjExY2Q1MDhlM2YyZTk0YyR2YXIkc2VudGluZWwpJiYoUz0wKX1pZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBjP2I9YyhyLGIpOmIgaW5zdGFuY2VvZiBEYXRlP2I9aChiKTpcImNvbW1hXCI9PT1uJiYkZjExY2Q1MDhlM2YyZTk0YyR2YXIkaXNBcnJheShiKSYmKGI9JDM2NmQ5MWEyM2U2N2E3YWEkZXhwb3J0cy5tYXliZU1hcChiLGZ1bmN0aW9uKGUpe3JldHVybiBlIGluc3RhbmNlb2YgRGF0ZT9oKGUpOmV9KSksbnVsbD09PWIpe2lmKG8pcmV0dXJuIHUmJiFnP3UociwkZjExY2Q1MDhlM2YyZTk0YyR2YXIkZGVmYXVsdHMuZW5jb2Rlcix5LFwia2V5XCIsZik6cjtiPVwiXCJ9aWYoJGYxMWNkNTA4ZTNmMmU5NGMkdmFyJGlzTm9uTnVsbGlzaFByaW1pdGl2ZShiKXx8JDM2NmQ5MWEyM2U2N2E3YWEkZXhwb3J0cy5pc0J1ZmZlcihiKSlyZXR1cm4gdT9bbShnP3I6dShyLCRmMTFjZDUwOGUzZjJlOTRjJHZhciRkZWZhdWx0cy5lbmNvZGVyLHksXCJrZXlcIixmKSkrXCI9XCIrbSh1KGIsJGYxMWNkNTA4ZTNmMmU5NGMkdmFyJGRlZmF1bHRzLmVuY29kZXIseSxcInZhbHVlXCIsZikpXTpbbShyKStcIj1cIittKFN0cmluZyhiKSldO3ZhciB4PVtdO2lmKHZvaWQgMD09PWIpcmV0dXJuIHg7aWYoXCJjb21tYVwiPT09biYmJGYxMWNkNTA4ZTNmMmU5NGMkdmFyJGlzQXJyYXkoYikpZyYmdSYmKGI9JDM2NmQ5MWEyM2U2N2E3YWEkZXhwb3J0cy5tYXliZU1hcChiLHUpKSx2PVt7dmFsdWU6Yi5sZW5ndGg+MD9iLmpvaW4oXCIsXCIpfHxudWxsOnZvaWQgMH1dO2Vsc2UgaWYoJGYxMWNkNTA4ZTNmMmU5NGMkdmFyJGlzQXJyYXkoYykpdj1jO2Vsc2V7dmFyIGs9T2JqZWN0LmtleXMoYik7dj1wP2suc29ydChwKTprfXZhciBJPWw/U3RyaW5nKHIpLnJlcGxhY2UoL1xcLi9nLFwiJTJFXCIpOlN0cmluZyhyKSxPPWkmJiRmMTFjZDUwOGUzZjJlOTRjJHZhciRpc0FycmF5KGIpJiYxPT09Yi5sZW5ndGg/SStcIltdXCI6STtpZihhJiYkZjExY2Q1MDhlM2YyZTk0YyR2YXIkaXNBcnJheShiKSYmMD09PWIubGVuZ3RoKXJldHVybiBPK1wiW11cIjtmb3IodmFyIGo9MDtqPHYubGVuZ3RoOysrail7dmFyIFQ9dltqXSxQPVwib2JqZWN0XCI9PXR5cGVvZiBUJiZUJiZ2b2lkIDAhPT1ULnZhbHVlP1QudmFsdWU6YltUXTtpZighc3x8bnVsbCE9PVApe3ZhciBDPWQmJmw/U3RyaW5nKFQpLnJlcGxhY2UoL1xcLi9nLFwiJTJFXCIpOlN0cmluZyhUKSxOPSRmMTFjZDUwOGUzZjJlOTRjJHZhciRpc0FycmF5KGIpP1wiZnVuY3Rpb25cIj09dHlwZW9mIG4/bihPLEMpOk86TysoZD9cIi5cIitDOlwiW1wiK0MrXCJdXCIpO18uc2V0KHQsUyk7dmFyIFI9JDgyODg1OWRjOGM1OTI4ZGQkZXhwb3J0cygpO1Iuc2V0KCRmMTFjZDUwOGUzZjJlOTRjJHZhciRzZW50aW5lbCxfKSwkZjExY2Q1MDhlM2YyZTk0YyR2YXIkcHVzaFRvQXJyYXkoeCxlKFAsTixuLGksYSxvLHMsbCxcImNvbW1hXCI9PT1uJiZnJiYkZjExY2Q1MDhlM2YyZTk0YyR2YXIkaXNBcnJheShiKT9udWxsOnUsYyxwLGQsaCxmLG0sZyx5LFIpKX19cmV0dXJuIHh9LCRmMTFjZDUwOGUzZjJlOTRjJHZhciRub3JtYWxpemVTdHJpbmdpZnlPcHRpb25zPWZ1bmN0aW9uKGUpe2lmKCFlKXJldHVybiAkZjExY2Q1MDhlM2YyZTk0YyR2YXIkZGVmYXVsdHM7aWYodm9pZCAwIT09ZS5hbGxvd0VtcHR5QXJyYXlzJiZcImJvb2xlYW5cIiE9dHlwZW9mIGUuYWxsb3dFbXB0eUFycmF5cyl0aHJvdyBUeXBlRXJyb3IoXCJgYWxsb3dFbXB0eUFycmF5c2Agb3B0aW9uIGNhbiBvbmx5IGJlIGB0cnVlYCBvciBgZmFsc2VgLCB3aGVuIHByb3ZpZGVkXCIpO2lmKHZvaWQgMCE9PWUuZW5jb2RlRG90SW5LZXlzJiZcImJvb2xlYW5cIiE9dHlwZW9mIGUuZW5jb2RlRG90SW5LZXlzKXRocm93IFR5cGVFcnJvcihcImBlbmNvZGVEb3RJbktleXNgIG9wdGlvbiBjYW4gb25seSBiZSBgdHJ1ZWAgb3IgYGZhbHNlYCwgd2hlbiBwcm92aWRlZFwiKTtpZihudWxsIT09ZS5lbmNvZGVyJiZ2b2lkIDAhPT1lLmVuY29kZXImJlwiZnVuY3Rpb25cIiE9dHlwZW9mIGUuZW5jb2Rlcil0aHJvdyBUeXBlRXJyb3IoXCJFbmNvZGVyIGhhcyB0byBiZSBhIGZ1bmN0aW9uLlwiKTt2YXIgdCxyPWUuY2hhcnNldHx8JGYxMWNkNTA4ZTNmMmU5NGMkdmFyJGRlZmF1bHRzLmNoYXJzZXQ7aWYodm9pZCAwIT09ZS5jaGFyc2V0JiZcInV0Zi04XCIhPT1lLmNoYXJzZXQmJlwiaXNvLTg4NTktMVwiIT09ZS5jaGFyc2V0KXRocm93IFR5cGVFcnJvcihcIlRoZSBjaGFyc2V0IG9wdGlvbiBtdXN0IGJlIGVpdGhlciB1dGYtOCwgaXNvLTg4NTktMSwgb3IgdW5kZWZpbmVkXCIpO3ZhciBuPSRjMjljNGM5MWQ2OTU5NWE4JGV4cG9ydHMuZGVmYXVsdDtpZih2b2lkIDAhPT1lLmZvcm1hdCl7aWYoISRmMTFjZDUwOGUzZjJlOTRjJHZhciRoYXMuY2FsbCgkYzI5YzRjOTFkNjk1OTVhOCRleHBvcnRzLmZvcm1hdHRlcnMsZS5mb3JtYXQpKXRocm93IFR5cGVFcnJvcihcIlVua25vd24gZm9ybWF0IG9wdGlvbiBwcm92aWRlZC5cIik7bj1lLmZvcm1hdH12YXIgaT0kYzI5YzRjOTFkNjk1OTVhOCRleHBvcnRzLmZvcm1hdHRlcnNbbl0sYT0kZjExY2Q1MDhlM2YyZTk0YyR2YXIkZGVmYXVsdHMuZmlsdGVyO2lmKChcImZ1bmN0aW9uXCI9PXR5cGVvZiBlLmZpbHRlcnx8JGYxMWNkNTA4ZTNmMmU5NGMkdmFyJGlzQXJyYXkoZS5maWx0ZXIpKSYmKGE9ZS5maWx0ZXIpLHQ9ZS5hcnJheUZvcm1hdCBpbiAkZjExY2Q1MDhlM2YyZTk0YyR2YXIkYXJyYXlQcmVmaXhHZW5lcmF0b3JzP2UuYXJyYXlGb3JtYXQ6XCJpbmRpY2VzXCJpbiBlP2UuaW5kaWNlcz9cImluZGljZXNcIjpcInJlcGVhdFwiOiRmMTFjZDUwOGUzZjJlOTRjJHZhciRkZWZhdWx0cy5hcnJheUZvcm1hdCxcImNvbW1hUm91bmRUcmlwXCJpbiBlJiZcImJvb2xlYW5cIiE9dHlwZW9mIGUuY29tbWFSb3VuZFRyaXApdGhyb3cgVHlwZUVycm9yKFwiYGNvbW1hUm91bmRUcmlwYCBtdXN0IGJlIGEgYm9vbGVhbiwgb3IgYWJzZW50XCIpO3ZhciBvPXZvaWQgMD09PWUuYWxsb3dEb3RzPyEwPT09ZS5lbmNvZGVEb3RJbktleXN8fCRmMTFjZDUwOGUzZjJlOTRjJHZhciRkZWZhdWx0cy5hbGxvd0RvdHM6ISFlLmFsbG93RG90cztyZXR1cm57YWRkUXVlcnlQcmVmaXg6XCJib29sZWFuXCI9PXR5cGVvZiBlLmFkZFF1ZXJ5UHJlZml4P2UuYWRkUXVlcnlQcmVmaXg6JGYxMWNkNTA4ZTNmMmU5NGMkdmFyJGRlZmF1bHRzLmFkZFF1ZXJ5UHJlZml4LGFsbG93RG90czpvLGFsbG93RW1wdHlBcnJheXM6XCJib29sZWFuXCI9PXR5cGVvZiBlLmFsbG93RW1wdHlBcnJheXM/ISFlLmFsbG93RW1wdHlBcnJheXM6JGYxMWNkNTA4ZTNmMmU5NGMkdmFyJGRlZmF1bHRzLmFsbG93RW1wdHlBcnJheXMsYXJyYXlGb3JtYXQ6dCxjaGFyc2V0OnIsY2hhcnNldFNlbnRpbmVsOlwiYm9vbGVhblwiPT10eXBlb2YgZS5jaGFyc2V0U2VudGluZWw/ZS5jaGFyc2V0U2VudGluZWw6JGYxMWNkNTA4ZTNmMmU5NGMkdmFyJGRlZmF1bHRzLmNoYXJzZXRTZW50aW5lbCxjb21tYVJvdW5kVHJpcDohIWUuY29tbWFSb3VuZFRyaXAsZGVsaW1pdGVyOnZvaWQgMD09PWUuZGVsaW1pdGVyPyRmMTFjZDUwOGUzZjJlOTRjJHZhciRkZWZhdWx0cy5kZWxpbWl0ZXI6ZS5kZWxpbWl0ZXIsZW5jb2RlOlwiYm9vbGVhblwiPT10eXBlb2YgZS5lbmNvZGU/ZS5lbmNvZGU6JGYxMWNkNTA4ZTNmMmU5NGMkdmFyJGRlZmF1bHRzLmVuY29kZSxlbmNvZGVEb3RJbktleXM6XCJib29sZWFuXCI9PXR5cGVvZiBlLmVuY29kZURvdEluS2V5cz9lLmVuY29kZURvdEluS2V5czokZjExY2Q1MDhlM2YyZTk0YyR2YXIkZGVmYXVsdHMuZW5jb2RlRG90SW5LZXlzLGVuY29kZXI6XCJmdW5jdGlvblwiPT10eXBlb2YgZS5lbmNvZGVyP2UuZW5jb2RlcjokZjExY2Q1MDhlM2YyZTk0YyR2YXIkZGVmYXVsdHMuZW5jb2RlcixlbmNvZGVWYWx1ZXNPbmx5OlwiYm9vbGVhblwiPT10eXBlb2YgZS5lbmNvZGVWYWx1ZXNPbmx5P2UuZW5jb2RlVmFsdWVzT25seTokZjExY2Q1MDhlM2YyZTk0YyR2YXIkZGVmYXVsdHMuZW5jb2RlVmFsdWVzT25seSxmaWx0ZXI6YSxmb3JtYXQ6bixmb3JtYXR0ZXI6aSxzZXJpYWxpemVEYXRlOlwiZnVuY3Rpb25cIj09dHlwZW9mIGUuc2VyaWFsaXplRGF0ZT9lLnNlcmlhbGl6ZURhdGU6JGYxMWNkNTA4ZTNmMmU5NGMkdmFyJGRlZmF1bHRzLnNlcmlhbGl6ZURhdGUsc2tpcE51bGxzOlwiYm9vbGVhblwiPT10eXBlb2YgZS5za2lwTnVsbHM/ZS5za2lwTnVsbHM6JGYxMWNkNTA4ZTNmMmU5NGMkdmFyJGRlZmF1bHRzLnNraXBOdWxscyxzb3J0OlwiZnVuY3Rpb25cIj09dHlwZW9mIGUuc29ydD9lLnNvcnQ6bnVsbCxzdHJpY3ROdWxsSGFuZGxpbmc6XCJib29sZWFuXCI9PXR5cGVvZiBlLnN0cmljdE51bGxIYW5kbGluZz9lLnN0cmljdE51bGxIYW5kbGluZzokZjExY2Q1MDhlM2YyZTk0YyR2YXIkZGVmYXVsdHMuc3RyaWN0TnVsbEhhbmRsaW5nfX07JGYxMWNkNTA4ZTNmMmU5NGMkZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciByLG4saT1lLGE9JGYxMWNkNTA4ZTNmMmU5NGMkdmFyJG5vcm1hbGl6ZVN0cmluZ2lmeU9wdGlvbnModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgYS5maWx0ZXI/aT0obj1hLmZpbHRlcikoXCJcIixpKTokZjExY2Q1MDhlM2YyZTk0YyR2YXIkaXNBcnJheShhLmZpbHRlcikmJihyPW49YS5maWx0ZXIpO3ZhciBvPVtdO2lmKFwib2JqZWN0XCIhPXR5cGVvZiBpfHxudWxsPT09aSlyZXR1cm5cIlwiO3ZhciBzPSRmMTFjZDUwOGUzZjJlOTRjJHZhciRhcnJheVByZWZpeEdlbmVyYXRvcnNbYS5hcnJheUZvcm1hdF0sbD1cImNvbW1hXCI9PT1zJiZhLmNvbW1hUm91bmRUcmlwO3J8fChyPU9iamVjdC5rZXlzKGkpKSxhLnNvcnQmJnIuc29ydChhLnNvcnQpO2Zvcih2YXIgdT0kODI4ODU5ZGM4YzU5MjhkZCRleHBvcnRzKCksYz0wO2M8ci5sZW5ndGg7KytjKXt2YXIgcD1yW2NdLGQ9aVtwXTthLnNraXBOdWxscyYmbnVsbD09PWR8fCRmMTFjZDUwOGUzZjJlOTRjJHZhciRwdXNoVG9BcnJheShvLCRmMTFjZDUwOGUzZjJlOTRjJHZhciRzdHJpbmdpZnkoZCxwLHMsbCxhLmFsbG93RW1wdHlBcnJheXMsYS5zdHJpY3ROdWxsSGFuZGxpbmcsYS5za2lwTnVsbHMsYS5lbmNvZGVEb3RJbktleXMsYS5lbmNvZGU/YS5lbmNvZGVyOm51bGwsYS5maWx0ZXIsYS5zb3J0LGEuYWxsb3dEb3RzLGEuc2VyaWFsaXplRGF0ZSxhLmZvcm1hdCxhLmZvcm1hdHRlcixhLmVuY29kZVZhbHVlc09ubHksYS5jaGFyc2V0LHUpKX12YXIgaD1vLmpvaW4oYS5kZWxpbWl0ZXIpLGY9ITA9PT1hLmFkZFF1ZXJ5UHJlZml4P1wiP1wiOlwiXCI7cmV0dXJuIGEuY2hhcnNldFNlbnRpbmVsJiYoXCJpc28tODg1OS0xXCI9PT1hLmNoYXJzZXQ/Zis9XCJ1dGY4PSUyNiUyMzEwMDAzJTNCJlwiOmYrPVwidXRmOD0lRTIlOUMlOTMmXCIpLGgubGVuZ3RoPjA/ZitoOlwiXCJ9O3ZhciAkOTIwZmVlMTM4YzJmODJmOSRleHBvcnRzPXt9LCQ5MjBmZWUxMzhjMmY4MmY5JHZhciRoYXM9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSwkOTIwZmVlMTM4YzJmODJmOSR2YXIkaXNBcnJheT1BcnJheS5pc0FycmF5LCQ5MjBmZWUxMzhjMmY4MmY5JHZhciRkZWZhdWx0cz17YWxsb3dEb3RzOiExLGFsbG93RW1wdHlBcnJheXM6ITEsYWxsb3dQcm90b3R5cGVzOiExLGFsbG93U3BhcnNlOiExLGFycmF5TGltaXQ6MjAsY2hhcnNldDpcInV0Zi04XCIsY2hhcnNldFNlbnRpbmVsOiExLGNvbW1hOiExLGRlY29kZURvdEluS2V5czohMSxkZWNvZGVyOiQzNjZkOTFhMjNlNjdhN2FhJGV4cG9ydHMuZGVjb2RlLGRlbGltaXRlcjpcIiZcIixkZXB0aDo1LGR1cGxpY2F0ZXM6XCJjb21iaW5lXCIsaWdub3JlUXVlcnlQcmVmaXg6ITEsaW50ZXJwcmV0TnVtZXJpY0VudGl0aWVzOiExLHBhcmFtZXRlckxpbWl0OjFlMyxwYXJzZUFycmF5czohMCxwbGFpbk9iamVjdHM6ITEsc3RyaWN0RGVwdGg6ITEsc3RyaWN0TnVsbEhhbmRsaW5nOiExLHRocm93T25MaW1pdEV4Y2VlZGVkOiExfSwkOTIwZmVlMTM4YzJmODJmOSR2YXIkaW50ZXJwcmV0TnVtZXJpY0VudGl0aWVzPWZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoLyYjKFxcZCspOy9nLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQodCwxMCkpfSl9LCQ5MjBmZWUxMzhjMmY4MmY5JHZhciRwYXJzZUFycmF5VmFsdWU9ZnVuY3Rpb24oZSx0LHIpe2lmKGUmJlwic3RyaW5nXCI9PXR5cGVvZiBlJiZ0LmNvbW1hJiZlLmluZGV4T2YoXCIsXCIpPi0xKXJldHVybiBlLnNwbGl0KFwiLFwiKTtpZih0LnRocm93T25MaW1pdEV4Y2VlZGVkJiZyPj10LmFycmF5TGltaXQpdGhyb3cgUmFuZ2VFcnJvcihcIkFycmF5IGxpbWl0IGV4Y2VlZGVkLiBPbmx5IFwiK3QuYXJyYXlMaW1pdCtcIiBlbGVtZW50XCIrKDE9PT10LmFycmF5TGltaXQ/XCJcIjpcInNcIikrXCIgYWxsb3dlZCBpbiBhbiBhcnJheS5cIik7cmV0dXJuIGV9LCQ5MjBmZWUxMzhjMmY4MmY5JHZhciRpc29TZW50aW5lbD1cInV0Zjg9JTI2JTIzMTAwMDMlM0JcIiwkOTIwZmVlMTM4YzJmODJmOSR2YXIkY2hhcnNldFNlbnRpbmVsPVwidXRmOD0lRTIlOUMlOTNcIiwkOTIwZmVlMTM4YzJmODJmOSR2YXIkcGFyc2VWYWx1ZXM9ZnVuY3Rpb24oZSx0KXt2YXIgcj17X19wcm90b19fOm51bGx9LG49dC5pZ25vcmVRdWVyeVByZWZpeD9lLnJlcGxhY2UoL15cXD8vLFwiXCIpOmU7bj1uLnJlcGxhY2UoLyU1Qi9naSxcIltcIikucmVwbGFjZSgvJTVEL2dpLFwiXVwiKTt2YXIgaT10LnBhcmFtZXRlckxpbWl0PT09MS8wP3ZvaWQgMDp0LnBhcmFtZXRlckxpbWl0LGE9bi5zcGxpdCh0LmRlbGltaXRlcix0LnRocm93T25MaW1pdEV4Y2VlZGVkP2krMTppKTtpZih0LnRocm93T25MaW1pdEV4Y2VlZGVkJiZhLmxlbmd0aD5pKXRocm93IFJhbmdlRXJyb3IoXCJQYXJhbWV0ZXIgbGltaXQgZXhjZWVkZWQuIE9ubHkgXCIraStcIiBwYXJhbWV0ZXJcIisoMT09PWk/XCJcIjpcInNcIikrXCIgYWxsb3dlZC5cIik7dmFyIG89LTEscz10LmNoYXJzZXQ7aWYodC5jaGFyc2V0U2VudGluZWwpZm9yKGw9MDtsPGEubGVuZ3RoOysrbCkwPT09YVtsXS5pbmRleE9mKFwidXRmOD1cIikmJihhW2xdPT09JDkyMGZlZTEzOGMyZjgyZjkkdmFyJGNoYXJzZXRTZW50aW5lbD9zPVwidXRmLThcIjphW2xdPT09JDkyMGZlZTEzOGMyZjgyZjkkdmFyJGlzb1NlbnRpbmVsJiYocz1cImlzby04ODU5LTFcIiksbz1sLGw9YS5sZW5ndGgpO2ZvcihsPTA7bDxhLmxlbmd0aDsrK2wpaWYobCE9PW8pe3ZhciBsLHUsYyxwPWFbbF0sZD1wLmluZGV4T2YoXCJdPVwiKSxoPS0xPT09ZD9wLmluZGV4T2YoXCI9XCIpOmQrMTstMT09PWg/KHU9dC5kZWNvZGVyKHAsJDkyMGZlZTEzOGMyZjgyZjkkdmFyJGRlZmF1bHRzLmRlY29kZXIscyxcImtleVwiKSxjPXQuc3RyaWN0TnVsbEhhbmRsaW5nP251bGw6XCJcIik6KHU9dC5kZWNvZGVyKHAuc2xpY2UoMCxoKSwkOTIwZmVlMTM4YzJmODJmOSR2YXIkZGVmYXVsdHMuZGVjb2RlcixzLFwia2V5XCIpLGM9JDM2NmQ5MWEyM2U2N2E3YWEkZXhwb3J0cy5tYXliZU1hcCgkOTIwZmVlMTM4YzJmODJmOSR2YXIkcGFyc2VBcnJheVZhbHVlKHAuc2xpY2UoaCsxKSx0LCQ5MjBmZWUxMzhjMmY4MmY5JHZhciRpc0FycmF5KHJbdV0pP3JbdV0ubGVuZ3RoOjApLGZ1bmN0aW9uKGUpe3JldHVybiB0LmRlY29kZXIoZSwkOTIwZmVlMTM4YzJmODJmOSR2YXIkZGVmYXVsdHMuZGVjb2RlcixzLFwidmFsdWVcIil9KSksYyYmdC5pbnRlcnByZXROdW1lcmljRW50aXRpZXMmJlwiaXNvLTg4NTktMVwiPT09cyYmKGM9JDkyMGZlZTEzOGMyZjgyZjkkdmFyJGludGVycHJldE51bWVyaWNFbnRpdGllcyhTdHJpbmcoYykpKSxwLmluZGV4T2YoXCJbXT1cIik+LTEmJihjPSQ5MjBmZWUxMzhjMmY4MmY5JHZhciRpc0FycmF5KGMpP1tjXTpjKTt2YXIgZj0kOTIwZmVlMTM4YzJmODJmOSR2YXIkaGFzLmNhbGwocix1KTtmJiZcImNvbWJpbmVcIj09PXQuZHVwbGljYXRlcz9yW3VdPSQzNjZkOTFhMjNlNjdhN2FhJGV4cG9ydHMuY29tYmluZShyW3VdLGMpOmYmJlwibGFzdFwiIT09dC5kdXBsaWNhdGVzfHwoclt1XT1jKX1yZXR1cm4gcn0sJDkyMGZlZTEzOGMyZjgyZjkkdmFyJHBhcnNlT2JqZWN0PWZ1bmN0aW9uKGUsdCxyLG4pe3ZhciBpPTA7aWYoZS5sZW5ndGg+MCYmXCJbXVwiPT09ZVtlLmxlbmd0aC0xXSl7dmFyIGE9ZS5zbGljZSgwLC0xKS5qb2luKFwiXCIpO2k9QXJyYXkuaXNBcnJheSh0KSYmdFthXT90W2FdLmxlbmd0aDowfWZvcih2YXIgbz1uP3Q6JDkyMGZlZTEzOGMyZjgyZjkkdmFyJHBhcnNlQXJyYXlWYWx1ZSh0LHIsaSkscz1lLmxlbmd0aC0xO3M+PTA7LS1zKXt2YXIgbCx1PWVbc107aWYoXCJbXVwiPT09dSYmci5wYXJzZUFycmF5cylsPXIuYWxsb3dFbXB0eUFycmF5cyYmKFwiXCI9PT1vfHxyLnN0cmljdE51bGxIYW5kbGluZyYmbnVsbD09PW8pP1tdOiQzNjZkOTFhMjNlNjdhN2FhJGV4cG9ydHMuY29tYmluZShbXSxvKTtlbHNle2w9ci5wbGFpbk9iamVjdHM/e19fcHJvdG9fXzpudWxsfTp7fTt2YXIgYz1cIltcIj09PXUuY2hhckF0KDApJiZcIl1cIj09PXUuY2hhckF0KHUubGVuZ3RoLTEpP3Uuc2xpY2UoMSwtMSk6dSxwPXIuZGVjb2RlRG90SW5LZXlzP2MucmVwbGFjZSgvJTJFL2csXCIuXCIpOmMsZD1wYXJzZUludChwLDEwKTtyLnBhcnNlQXJyYXlzfHxcIlwiIT09cD8haXNOYU4oZCkmJnUhPT1wJiZTdHJpbmcoZCk9PT1wJiZkPj0wJiZyLnBhcnNlQXJyYXlzJiZkPD1yLmFycmF5TGltaXQ/KGw9W10pW2RdPW86XCJfX3Byb3RvX19cIiE9PXAmJihsW3BdPW8pOmw9ezA6b319bz1sfXJldHVybiBvfSwkOTIwZmVlMTM4YzJmODJmOSR2YXIkcGFyc2VLZXlzPWZ1bmN0aW9uKGUsdCxyLG4pe2lmKGUpe3ZhciBpPXIuYWxsb3dEb3RzP2UucmVwbGFjZSgvXFwuKFteLltdKykvZyxcIlskMV1cIik6ZSxhPS8oXFxbW15bXFxdXSpdKS8sbz0vKFxcW1teW1xcXV0qXSkvZyxzPXIuZGVwdGg+MCYmYS5leGVjKGkpLGw9cz9pLnNsaWNlKDAscy5pbmRleCk6aSx1PVtdO2lmKGwpe2lmKCFyLnBsYWluT2JqZWN0cyYmJDkyMGZlZTEzOGMyZjgyZjkkdmFyJGhhcy5jYWxsKE9iamVjdC5wcm90b3R5cGUsbCkmJiFyLmFsbG93UHJvdG90eXBlcylyZXR1cm47dS5wdXNoKGwpfWZvcih2YXIgYz0wO3IuZGVwdGg+MCYmbnVsbCE9PShzPW8uZXhlYyhpKSkmJmM8ci5kZXB0aDspe2lmKGMrPTEsIXIucGxhaW5PYmplY3RzJiYkOTIwZmVlMTM4YzJmODJmOSR2YXIkaGFzLmNhbGwoT2JqZWN0LnByb3RvdHlwZSxzWzFdLnNsaWNlKDEsLTEpKSYmIXIuYWxsb3dQcm90b3R5cGVzKXJldHVybjt1LnB1c2goc1sxXSl9aWYocyl7aWYoITA9PT1yLnN0cmljdERlcHRoKXRocm93IFJhbmdlRXJyb3IoXCJJbnB1dCBkZXB0aCBleGNlZWRlZCBkZXB0aCBvcHRpb24gb2YgXCIrci5kZXB0aCtcIiBhbmQgc3RyaWN0RGVwdGggaXMgdHJ1ZVwiKTt1LnB1c2goXCJbXCIraS5zbGljZShzLmluZGV4KStcIl1cIil9cmV0dXJuICQ5MjBmZWUxMzhjMmY4MmY5JHZhciRwYXJzZU9iamVjdCh1LHQscixuKX19LCQ5MjBmZWUxMzhjMmY4MmY5JHZhciRub3JtYWxpemVQYXJzZU9wdGlvbnM9ZnVuY3Rpb24oZSl7aWYoIWUpcmV0dXJuICQ5MjBmZWUxMzhjMmY4MmY5JHZhciRkZWZhdWx0cztpZih2b2lkIDAhPT1lLmFsbG93RW1wdHlBcnJheXMmJlwiYm9vbGVhblwiIT10eXBlb2YgZS5hbGxvd0VtcHR5QXJyYXlzKXRocm93IFR5cGVFcnJvcihcImBhbGxvd0VtcHR5QXJyYXlzYCBvcHRpb24gY2FuIG9ubHkgYmUgYHRydWVgIG9yIGBmYWxzZWAsIHdoZW4gcHJvdmlkZWRcIik7aWYodm9pZCAwIT09ZS5kZWNvZGVEb3RJbktleXMmJlwiYm9vbGVhblwiIT10eXBlb2YgZS5kZWNvZGVEb3RJbktleXMpdGhyb3cgVHlwZUVycm9yKFwiYGRlY29kZURvdEluS2V5c2Agb3B0aW9uIGNhbiBvbmx5IGJlIGB0cnVlYCBvciBgZmFsc2VgLCB3aGVuIHByb3ZpZGVkXCIpO2lmKG51bGwhPT1lLmRlY29kZXImJnZvaWQgMCE9PWUuZGVjb2RlciYmXCJmdW5jdGlvblwiIT10eXBlb2YgZS5kZWNvZGVyKXRocm93IFR5cGVFcnJvcihcIkRlY29kZXIgaGFzIHRvIGJlIGEgZnVuY3Rpb24uXCIpO2lmKHZvaWQgMCE9PWUuY2hhcnNldCYmXCJ1dGYtOFwiIT09ZS5jaGFyc2V0JiZcImlzby04ODU5LTFcIiE9PWUuY2hhcnNldCl0aHJvdyBUeXBlRXJyb3IoXCJUaGUgY2hhcnNldCBvcHRpb24gbXVzdCBiZSBlaXRoZXIgdXRmLTgsIGlzby04ODU5LTEsIG9yIHVuZGVmaW5lZFwiKTtpZih2b2lkIDAhPT1lLnRocm93T25MaW1pdEV4Y2VlZGVkJiZcImJvb2xlYW5cIiE9dHlwZW9mIGUudGhyb3dPbkxpbWl0RXhjZWVkZWQpdGhyb3cgVHlwZUVycm9yKFwiYHRocm93T25MaW1pdEV4Y2VlZGVkYCBvcHRpb24gbXVzdCBiZSBhIGJvb2xlYW5cIik7dmFyIHQ9dm9pZCAwPT09ZS5jaGFyc2V0PyQ5MjBmZWUxMzhjMmY4MmY5JHZhciRkZWZhdWx0cy5jaGFyc2V0OmUuY2hhcnNldCxyPXZvaWQgMD09PWUuZHVwbGljYXRlcz8kOTIwZmVlMTM4YzJmODJmOSR2YXIkZGVmYXVsdHMuZHVwbGljYXRlczplLmR1cGxpY2F0ZXM7aWYoXCJjb21iaW5lXCIhPT1yJiZcImZpcnN0XCIhPT1yJiZcImxhc3RcIiE9PXIpdGhyb3cgVHlwZUVycm9yKFwiVGhlIGR1cGxpY2F0ZXMgb3B0aW9uIG11c3QgYmUgZWl0aGVyIGNvbWJpbmUsIGZpcnN0LCBvciBsYXN0XCIpO3JldHVybnthbGxvd0RvdHM6dm9pZCAwPT09ZS5hbGxvd0RvdHM/ITA9PT1lLmRlY29kZURvdEluS2V5c3x8JDkyMGZlZTEzOGMyZjgyZjkkdmFyJGRlZmF1bHRzLmFsbG93RG90czohIWUuYWxsb3dEb3RzLGFsbG93RW1wdHlBcnJheXM6XCJib29sZWFuXCI9PXR5cGVvZiBlLmFsbG93RW1wdHlBcnJheXM/ISFlLmFsbG93RW1wdHlBcnJheXM6JDkyMGZlZTEzOGMyZjgyZjkkdmFyJGRlZmF1bHRzLmFsbG93RW1wdHlBcnJheXMsYWxsb3dQcm90b3R5cGVzOlwiYm9vbGVhblwiPT10eXBlb2YgZS5hbGxvd1Byb3RvdHlwZXM/ZS5hbGxvd1Byb3RvdHlwZXM6JDkyMGZlZTEzOGMyZjgyZjkkdmFyJGRlZmF1bHRzLmFsbG93UHJvdG90eXBlcyxhbGxvd1NwYXJzZTpcImJvb2xlYW5cIj09dHlwZW9mIGUuYWxsb3dTcGFyc2U/ZS5hbGxvd1NwYXJzZTokOTIwZmVlMTM4YzJmODJmOSR2YXIkZGVmYXVsdHMuYWxsb3dTcGFyc2UsYXJyYXlMaW1pdDpcIm51bWJlclwiPT10eXBlb2YgZS5hcnJheUxpbWl0P2UuYXJyYXlMaW1pdDokOTIwZmVlMTM4YzJmODJmOSR2YXIkZGVmYXVsdHMuYXJyYXlMaW1pdCxjaGFyc2V0OnQsY2hhcnNldFNlbnRpbmVsOlwiYm9vbGVhblwiPT10eXBlb2YgZS5jaGFyc2V0U2VudGluZWw/ZS5jaGFyc2V0U2VudGluZWw6JDkyMGZlZTEzOGMyZjgyZjkkdmFyJGRlZmF1bHRzLmNoYXJzZXRTZW50aW5lbCxjb21tYTpcImJvb2xlYW5cIj09dHlwZW9mIGUuY29tbWE/ZS5jb21tYTokOTIwZmVlMTM4YzJmODJmOSR2YXIkZGVmYXVsdHMuY29tbWEsZGVjb2RlRG90SW5LZXlzOlwiYm9vbGVhblwiPT10eXBlb2YgZS5kZWNvZGVEb3RJbktleXM/ZS5kZWNvZGVEb3RJbktleXM6JDkyMGZlZTEzOGMyZjgyZjkkdmFyJGRlZmF1bHRzLmRlY29kZURvdEluS2V5cyxkZWNvZGVyOlwiZnVuY3Rpb25cIj09dHlwZW9mIGUuZGVjb2Rlcj9lLmRlY29kZXI6JDkyMGZlZTEzOGMyZjgyZjkkdmFyJGRlZmF1bHRzLmRlY29kZXIsZGVsaW1pdGVyOlwic3RyaW5nXCI9PXR5cGVvZiBlLmRlbGltaXRlcnx8JDM2NmQ5MWEyM2U2N2E3YWEkZXhwb3J0cy5pc1JlZ0V4cChlLmRlbGltaXRlcik/ZS5kZWxpbWl0ZXI6JDkyMGZlZTEzOGMyZjgyZjkkdmFyJGRlZmF1bHRzLmRlbGltaXRlcixkZXB0aDpcIm51bWJlclwiPT10eXBlb2YgZS5kZXB0aHx8ITE9PT1lLmRlcHRoPytlLmRlcHRoOiQ5MjBmZWUxMzhjMmY4MmY5JHZhciRkZWZhdWx0cy5kZXB0aCxkdXBsaWNhdGVzOnIsaWdub3JlUXVlcnlQcmVmaXg6ITA9PT1lLmlnbm9yZVF1ZXJ5UHJlZml4LGludGVycHJldE51bWVyaWNFbnRpdGllczpcImJvb2xlYW5cIj09dHlwZW9mIGUuaW50ZXJwcmV0TnVtZXJpY0VudGl0aWVzP2UuaW50ZXJwcmV0TnVtZXJpY0VudGl0aWVzOiQ5MjBmZWUxMzhjMmY4MmY5JHZhciRkZWZhdWx0cy5pbnRlcnByZXROdW1lcmljRW50aXRpZXMscGFyYW1ldGVyTGltaXQ6XCJudW1iZXJcIj09dHlwZW9mIGUucGFyYW1ldGVyTGltaXQ/ZS5wYXJhbWV0ZXJMaW1pdDokOTIwZmVlMTM4YzJmODJmOSR2YXIkZGVmYXVsdHMucGFyYW1ldGVyTGltaXQscGFyc2VBcnJheXM6ITEhPT1lLnBhcnNlQXJyYXlzLHBsYWluT2JqZWN0czpcImJvb2xlYW5cIj09dHlwZW9mIGUucGxhaW5PYmplY3RzP2UucGxhaW5PYmplY3RzOiQ5MjBmZWUxMzhjMmY4MmY5JHZhciRkZWZhdWx0cy5wbGFpbk9iamVjdHMsc3RyaWN0RGVwdGg6XCJib29sZWFuXCI9PXR5cGVvZiBlLnN0cmljdERlcHRoPyEhZS5zdHJpY3REZXB0aDokOTIwZmVlMTM4YzJmODJmOSR2YXIkZGVmYXVsdHMuc3RyaWN0RGVwdGgsc3RyaWN0TnVsbEhhbmRsaW5nOlwiYm9vbGVhblwiPT10eXBlb2YgZS5zdHJpY3ROdWxsSGFuZGxpbmc/ZS5zdHJpY3ROdWxsSGFuZGxpbmc6JDkyMGZlZTEzOGMyZjgyZjkkdmFyJGRlZmF1bHRzLnN0cmljdE51bGxIYW5kbGluZyx0aHJvd09uTGltaXRFeGNlZWRlZDpcImJvb2xlYW5cIj09dHlwZW9mIGUudGhyb3dPbkxpbWl0RXhjZWVkZWQmJmUudGhyb3dPbkxpbWl0RXhjZWVkZWR9fTskOTIwZmVlMTM4YzJmODJmOSRleHBvcnRzPWZ1bmN0aW9uKGUsdCl7dmFyIHI9JDkyMGZlZTEzOGMyZjgyZjkkdmFyJG5vcm1hbGl6ZVBhcnNlT3B0aW9ucyh0KTtpZihcIlwiPT09ZXx8bnVsbD09ZSlyZXR1cm4gci5wbGFpbk9iamVjdHM/e19fcHJvdG9fXzpudWxsfTp7fTtmb3IodmFyIG49XCJzdHJpbmdcIj09dHlwZW9mIGU/JDkyMGZlZTEzOGMyZjgyZjkkdmFyJHBhcnNlVmFsdWVzKGUscik6ZSxpPXIucGxhaW5PYmplY3RzP3tfX3Byb3RvX186bnVsbH06e30sYT1PYmplY3Qua2V5cyhuKSxvPTA7bzxhLmxlbmd0aDsrK28pe3ZhciBzPWFbb10sbD0kOTIwZmVlMTM4YzJmODJmOSR2YXIkcGFyc2VLZXlzKHMsbltzXSxyLFwic3RyaW5nXCI9PXR5cGVvZiBlKTtpPSQzNjZkOTFhMjNlNjdhN2FhJGV4cG9ydHMubWVyZ2UoaSxsLHIpfXJldHVybiEwPT09ci5hbGxvd1NwYXJzZT9pOiQzNjZkOTFhMjNlNjdhN2FhJGV4cG9ydHMuY29tcGFjdChpKX0sJGVmNTljMWEyZDkxYmRjZGMkZXhwb3J0cz17Zm9ybWF0czokYzI5YzRjOTFkNjk1OTVhOCRleHBvcnRzLHBhcnNlOiQ5MjBmZWUxMzhjMmY4MmY5JGV4cG9ydHMsc3RyaW5naWZ5OiRmMTFjZDUwOGUzZjJlOTRjJGV4cG9ydHN9O2NsYXNzICQ4ZmQ4ZGVkOGRiMzhhMTgzJGV4cG9ydCQyMzVlMjY1YWM3ZTA2MzZ7Y29uc3RydWN0b3IoZSl7dGhpcy5yb290PWUsdGhpcy5yZXF1ZXN0UHJvbWlzZXM9W119aW5pdChlKXt0aGlzLmdldFRva2VuPWV9YXN5bmMgZ2V0KGUpe2xldCB0PWF3YWl0IHRoaXMuZ2V0VG9rZW4oKSxyPXRoaXMuZ2V0SGFzaENvZGUoZSk7aWYodGhpcy5yZXF1ZXN0UHJvbWlzZXNbcl0pcmV0dXJuIHRoaXMucmVxdWVzdFByb21pc2VzW3JdLnByb21pc2U7bGV0IG49bmV3IFByb21pc2UoKHIsbik9PntsZXQgaTtlLmV4dGVybmFsUmVzb3VyY2U/aT1lLnVybDooaT10aGlzLnJvb3QrZS51cmwsaT1gJHtpfSR7L1xcPy8udGVzdChpKT9cIiZcIjpcIj9cIn10b2tlbj0ke3R9JHskMmY5ZWMzMGUyZmQ2OTVhMyRleHBvcnQkNzdiZDcxYWI1Y2UyMGIzZChlLnBhcmFtcyl9YCksJHBhcmNlbCRpbnRlcm9wRGVmYXVsdCgkYWtYSzQpLmdldChpLHt2YWxpZGF0ZVN0YXR1czpmdW5jdGlvbihlKXtyZXR1cm4gZTw0MDB9fSkudGhlbihmdW5jdGlvbihlKXsyMDAhPWUuc3RhdHVzJiZjb25zb2xlLmVycm9yKGBHVURIVUIgSFRUUCBTRVJWSUNFOiBHRVQgRVJST1I6ICR7ZS5zdGF0dXN9YCxlKSxyKGUuZGF0YSl9KS5jYXRjaChmdW5jdGlvbih0KXtjb25zb2xlLmVycm9yKGBHVURIVUIgSFRUUCBTRVJWSUNFOiBHRVQgRVJST1I6ICR7dC5yZXNwb25zZS5zdGF0dXN9XG5gLHQpLGNvbnNvbGUubG9nKFwiUmVxdWVzdCBtZXNzYWdlOiBcIixlKSx0LnJlc3BvbnNlJiZ0LnJlc3BvbnNlLmRhdGEmJmNvbnNvbGUubG9nKFwiRXJyb3IgcmVzcG9uc2UgZGF0YTogXCIsdC5yZXNwb25zZS5kYXRhKSxuKHQpfSl9KTtyZXR1cm4gdGhpcy5wdXNoUHJvbWlzZShuLHIpLG59YXN5bmMgcG9zdChlKXtsZXQgdD10aGlzLmdldEhhc2hDb2RlKGUpO2lmKGUuZm9ybS50b2tlbj1hd2FpdCB0aGlzLmdldFRva2VuKCksdGhpcy5yZXF1ZXN0UHJvbWlzZXNbdF0pcmV0dXJuIHRoaXMucmVxdWVzdFByb21pc2VzW3RdLnByb21pc2U7bGV0IHI9bmV3IFByb21pc2UoKHQscik9PnskcGFyY2VsJGludGVyb3BEZWZhdWx0KCRha1hLNCkucG9zdCh0aGlzLnJvb3QrZS51cmwsJHBhcmNlbCRpbnRlcm9wRGVmYXVsdCgkZWY1OWMxYTJkOTFiZGNkYyRleHBvcnRzKS5zdHJpbmdpZnkoZS5mb3JtKSx7bWF4Qm9keUxlbmd0aDoxLzAsaGVhZGVyczplLmhlYWRlcnN8fHtcIkNvbnRlbnQtVHlwZVwiOlwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCJ9LHZhbGlkYXRlU3RhdHVzOmZ1bmN0aW9uKGUpe3JldHVybiBlPDQwMH19KS50aGVuKGZ1bmN0aW9uKGUpezIwMCE9ZS5zdGF0dXMmJmNvbnNvbGUuZXJyb3IoYEdVREhVQiBIVFRQIFNFUlZJQ0U6IFBPU1QgRVJST1I6ICR7ZS5zdGF0dXN9YCxlKSx0KGUuZGF0YSl9KS5jYXRjaChmdW5jdGlvbih0KXtjb25zb2xlLmVycm9yKGBHVURIVUIgSFRUUCBTRVJWSUNFOiBQT1NUIEVSUk9SOiAke3QucmVzcG9uc2Uuc3RhdHVzfVxuYCx0KSxjb25zb2xlLmxvZyhcIlJlcXVlc3QgbWVzc2FnZTogXCIsZSkscih0KX0pfSk7cmV0dXJuIHRoaXMucHVzaFByb21pc2Uocix0KSxyfWF4aW9zUmVxdWVzdChlKXtsZXQgdD10aGlzLmdldEhhc2hDb2RlKGUpO2lmKHRoaXMucmVxdWVzdFByb21pc2VzW3RdKXJldHVybiB0aGlzLnJlcXVlc3RQcm9taXNlc1t0XS5wcm9taXNlO2xldCByPWUubWV0aG9kP2UubWV0aG9kLnRvTG93ZXJDYXNlKCk6XCJnZXRcIixuPWUudXJsLGk9ZS5oZWFkZXJzfHx7fTtlLmZvcm0mJihpW1wiQ29udGVudC1UeXBlXCJdPVwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCIpO2xldCBhPW5ldyBQcm9taXNlKGFzeW5jKHQsYSk9Pnt0cnl7bGV0e2RhdGE6YX09YXdhaXQgJHBhcmNlbCRpbnRlcm9wRGVmYXVsdCgkYWtYSzQpW3JdKG4sXCJwb3N0XCI9PT1yPyRwYXJjZWwkaW50ZXJvcERlZmF1bHQoJGVmNTljMWEyZDkxYmRjZGMkZXhwb3J0cykuc3RyaW5naWZ5KGUuZm9ybSl8fGUuYm9keTp7aGVhZGVyczppfSxcInBvc3RcIj09PXI/e2hlYWRlcnM6aX06e30pO3QoYSl9Y2F0Y2godCl7Y29uc29sZS5sb2coXCJFUlJPUiAtPiBHVURIVUIgSFRUUCBTRVJWSUNFIC0+IFNJTVBMRSBQT1NUIDpcIix0Lm1lc3NhZ2UpLGNvbnNvbGUubG9nKFwiUmVxdWVzdCBtZXNzYWdlOiBcIixlKSxhKHQpfX0pO3JldHVybiB0aGlzLnB1c2hQcm9taXNlKGEsdCksYX1wdXNoUHJvbWlzZShlLHQpe3RoaXMucmVxdWVzdFByb21pc2VzW3RdPXtwcm9taXNlOmUsaGVzaDp0LGNhbGxiYWNrOmUudGhlbigoKT0+e3RoaXMuZGVzdHJveVByb21pc2UodCl9KS5jYXRjaChlPT57dGhpcy5kZXN0cm95UHJvbWlzZSh0KX0pfX1kZXN0cm95UHJvbWlzZShlKXt0aGlzLnJlcXVlc3RQcm9taXNlcz10aGlzLnJlcXVlc3RQcm9taXNlcy5maWx0ZXIodD0+dC5oZXNoIT09ZSl9Z2V0SGFzaENvZGUoZSl7bGV0IHQ9MCxyPSRwYXJjZWwkaW50ZXJvcERlZmF1bHQoJGVmNTljMWEyZDkxYmRjZGMkZXhwb3J0cykuc3RyaW5naWZ5KGUpO2lmKDA9PXIubGVuZ3RoKXJldHVybiB0O2ZvcihsZXQgZT0wO2U8ci5sZW5ndGg7ZSsrKXQ9KHQ8PDUpLXQrci5jaGFyQ29kZUF0KGUpLHQmPXQ7cmV0dXJuXCJoXCIrdH19ZnVuY3Rpb24gJDljYWI4MjcxMGI5Nzk4MTgkZXhwb3J0JDcxNDljNmZmYzk5OTRjMzIoZSl7bGV0IHQ9XCJcIjtmb3IobGV0IHIgaW4gZSllLmhhc093blByb3BlcnR5KHIpJiZlW3JdJiYodCs9XCIuXCIrZVtyXSk7cmV0dXJuIHQ/dC5zdWJzdHJpbmcoMSk6XCJhbnlcIn1mdW5jdGlvbiAkOWNhYjgyNzEwYjk3OTgxOCRleHBvcnQkMTllOGUyODFlMjdkYWZhZChlLHQscil7cmV0dXJuIHZvaWQgMD09ZXx8XCJzdHJpbmdcIiE9dHlwZW9mIGU/KGNvbnNvbGUubG9nKFwiTGlzdGVuZXIgdHlwZSBpcyBcXFwidW5kZWZpbmVkXFxcIiBvciBub3QgaGF2ZSBhY3R1YWwgJ3R5cGUnIGZvciBzdWJzY3JpYmVcIiksITEpOnZvaWQgMD09dHx8XCJvYmplY3RcIiE9dHlwZW9mIHQ/KGNvbnNvbGUubG9nKFwiTGlzdGVuZXIgZGVzdGluYXRpb24gaXMgXFxcInVuZGVmaW5lZFxcXCIgb3Igbm90IGhhdmUgYWN0dWFsICd0eXBlJyBmb3Igc3Vic2NyaWJlXCIpLCExKTpcImZ1bmN0aW9uXCI9PXR5cGVvZiByfHwoY29uc29sZS5sb2coXCJMaXN0ZW5lciBpcyBub3QgYSBmdW5jdGlvbiBmb3Igc3Vic2NyaWJlIVwiKSwhMSl9Y2xhc3MgJGMzMDlhMzNhZWQwNWNiZmEkZXhwb3J0JGU1MjljNjgxMDk5ZmU2NGJ7Y29uc3RydWN0b3IoKXt0aGlzLnN1YnNjcmliZXJzPXt9LHRoaXMubWVzc2FnZUJveD17fX1vbihlLHQscil7cmV0dXJuICQ5Y2FiODI3MTBiOTc5ODE4JGV4cG9ydCQxOWU4ZTI4MWUyN2RhZmFkKGUsdCxyKSYmZS5zcGxpdChcIiBcIikubWFwKGU9PmUrXCI6XCIrJDljYWI4MjcxMGI5Nzk4MTgkZXhwb3J0JDcxNDljNmZmYzk5OTRjMzIodCkpLmZvckVhY2goZT0+e3RoaXMuc3Vic2NyaWJlcnNbZV18fCh0aGlzLnN1YnNjcmliZXJzW2VdPW5ldyBTZXQpLHRoaXMuc3Vic2NyaWJlcnNbZV0uYWRkKHIpLHRoaXMuY2hlY2tNZXNzYWdlQm94KGUpfSksdGhpc31lbWl0KGUsdCxyLG4pe3JldHVybiBlLnNwbGl0KFwiIFwiKS5mb3JFYWNoKGk9PntsZXQgYT1pK1wiOlwiKyQ5Y2FiODI3MTBiOTc5ODE4JGV4cG9ydCQ3MTQ5YzZmZmM5OTk0YzMyKHQpLG89ITE7aWYodGhpcy5zdWJzY3JpYmVyc1thXSl7aWYoMD09dGhpcy5zdWJzY3JpYmVyc1thXS5zaXplKXJldHVybiB0aGlzLm1lc3NhZ2VCb3hbYV09W2UsdCxyLG4sb10sdGhpczt0aGlzLnN1YnNjcmliZXJzW2FdLmZvckVhY2goZnVuY3Rpb24oZSl7ZShudWxsLHIsbil9KX1lbHNlIHRoaXMubWVzc2FnZUJveFthXT1bZSx0LHIsbixvXX0pLHRoaXN9b25Sb290KGUsdCxyKXtyZXR1cm4gdGhpcy5vbihlLHQscil9ZGVzdHJveShlLHQscil7cmV0dXJuIGUuc3BsaXQoXCIgXCIpLmZvckVhY2goZT0+e2xldCBuPWUrXCI6XCIrJDljYWI4MjcxMGI5Nzk4MTgkZXhwb3J0JDcxNDljNmZmYzk5OTRjMzIodCk7dGhpcy5zdWJzY3JpYmVyc1tuXSYmciYmdGhpcy5zdWJzY3JpYmVyc1tuXS5kZWxldGUociksdGhpcy5zdWJzY3JpYmVyc1tuXSYmIXImJmRlbGV0ZSB0aGlzLnN1YnNjcmliZXJzW25dfSksdGhpc31jaGVja01lc3NhZ2VCb3goZSl7dGhpcy5jbGVhbk1lc3NzYWdlQm94KCksdGhpcy5tZXNzYWdlQm94W2VdJiZzZXRUaW1lb3V0KCgpPT57dGhpcy5tZXNzYWdlQm94W2VdJiYodGhpcy5lbWl0KC4uLnRoaXMubWVzc2FnZUJveFtlXSksdGhpcy5tZXNzYWdlQm94W2VdWzRdPSEwKX0sMCl9Y2xlYW5NZXNzc2FnZUJveCgpe2ZvcihsZXQgZSBpbiB0aGlzLm1lc3NhZ2VCb3gpdGhpcy5tZXNzYWdlQm94W2VdWzRdJiZkZWxldGUgdGhpcy5tZXNzYWdlQm94W2VdfX1mdW5jdGlvbiAkZGMwZjUxMDE3YWM4NTEyNSRleHBvcnQkMmUyYmNkODczOWFlMDM5KGUsdCxyKXtyZXR1cm5be2RhdGFfdHlwZTpcInRleHRcIixuYW1lOlwiVGV4dFwiLGljb246XCJ0ZXh0X2ljb25cIix1cmw6dCtcIi9cIitlK1widGV4dF9kYXRhLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwidGV4dF9vcHRcIixuYW1lOlwiT3B0aW9uc1wiLGljb246XCJvcHRpb25fZ2hfZWxlbWVudFwiLHVybDp0K1wiL1wiK2UrXCJ0ZXh0X29wdGlvbnNfZGF0YS5qc1wiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImFuZ3VsYXJcIn0se2RhdGFfdHlwZTpcIm51bWJlclwiLG5hbWU6XCJOdW1iZXJcIixpY29uOlwibnVtYmVyXCIsdXJsOnQrXCIvXCIrZStcIm51bWJlcl9kYXRhLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwidGFza19ib2FyZFwiLG5hbWU6XCJUYXNrIEJvYXJkXCIsaWNvbjpcInRhc2tfYm9hcmRcIix1cmw6dCtcIi9cIitlK1widGFza19ib2FyZF9kYXRhLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwidmlzdWFsaXplclwiLG5hbWU6XCJ2aXN1YWxpemVyXCIsaWNvbjpcInZpc3VhbGl6ZXJcIix1cmw6dCtcIi9cIitlK1widmlzdWFsaXplcl9kYXRhLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwiZW50ZXJwcmljZV92aXN1YWxpemVyXCIsbmFtZTpcIkVudGVycHJpY2UgVmlzdWFsaXplclwiLGljb246XCJ2aXN1YWxpemVyXCIscHJpdmF0ZTohMCx1cmw6dCtcIi9cIitlK1wiZW50ZXJwcmljZV92aXN1YWxpemVyX2RhdGEuanNcIix0eXBlOlwiZ2hfZWxlbWVudFwiLHRlY2hub2xvZ3k6XCJhbmd1bGFyXCJ9LHtkYXRhX3R5cGU6XCJlbWFpbFwiLG5hbWU6XCJFbWFpbFwiLGljb246XCJlbWFpbFwiLHVybDp0K1wiL1wiK2UrXCJlbWFpbF9kYXRhLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwiZGF0ZVwiLG5hbWU6XCJEYXRlXCIsaWNvbjpcImRhdGVfZ2hfZWxlbWVudFwiLHVybDp0K1wiL1wiK2UrXCJkYXRlX2RhdGEuanNcIix0eXBlOlwiZ2hfZWxlbWVudFwiLHRlY2hub2xvZ3k6XCJhbmd1bGFyXCJ9LHtkYXRhX3R5cGU6XCJyYWRpb19idXR0b25cIixuYW1lOlwiUmFkaW8gQnV0dG9uXCIsaWNvbjpcInJhZGlvX2J1dHRvbl9naF9lbGVtZW50XCIsdXJsOnQrXCIvXCIrZStcInJhZGlvX2J1dHRvbl9kYXRhLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwicmFkaW9faWNvblwiLG5hbWU6XCJSYWRpbyBpY29uXCIsaWNvbjpcInJhZGlvX2ljb25fZ2hfZWxlbWVudFwiLHVybDp0K1wiL1wiK2UrXCJyYWRpb19pY29uX2RhdGEuanNcIix0eXBlOlwiZ2hfZWxlbWVudFwiLHRlY2hub2xvZ3k6XCJhbmd1bGFyXCJ9LHtkYXRhX3R5cGU6XCJ0d2lsaW9fcGhvbmVcIixuYW1lOlwiVHdpbGlvIFBob25lXCIsaWNvbjpcInBob25lX3R3aWxpb19naF9lbGVtZW50XCIsdXJsOnQrXCIvXCIrZStcInR3aWxpb19waG9uZV9kYXRhLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwidHdpbGlvX2F1dG9kaWFsZXJcIixuYW1lOlwiVHdpbGlvIEF1dG8gRGlhbGVyXCIsaWNvbjpcInR3aWxpb19kaWFsZXJcIix1cmw6dCtcIi9cIitlK1widHdpbGxpb19hdXRvZGlhbGVyX2RhdGEuanNcIix0eXBlOlwiZ2hfZWxlbWVudFwiLHRlY2hub2xvZ3k6XCJhbmd1bGFyXCJ9LHtkYXRhX3R5cGU6XCJjb2xvclwiLG5hbWU6XCJDb2xvclwiLGljb246XCJwYWludF9naF9lbGVtZW50XCIsdXJsOnQrXCIvXCIrZStcImNvbG9yX2RhdGEuanNcIix0eXBlOlwiZ2hfZWxlbWVudFwiLHRlY2hub2xvZ3k6XCJhbmd1bGFyXCJ9LHtkYXRhX3R5cGU6XCJjaGFydHNcIixuYW1lOlwiQ2hhcnRzXCIsaWNvbjpcImdyYXBoX2doX2VsZW1lbnRcIix1cmw6dCtcIi9cIitlK1wiY2hhcnRzX2RhdGEuanNcIix0eXBlOlwiZ2hfZWxlbWVudFwiLHRlY2hub2xvZ3k6XCJhbmd1bGFyXCJ9LHtkYXRhX3R5cGU6XCJmdW5uZWxfY2hhcnRcIixuYW1lOlwiRnVubmVsIGNoYXJ0XCIsaWNvbjpcImZ1bm5lbF9jaGFydF9naF9lbGVtZW50XCIsdXJsOnQrXCIvXCIrZStcImZ1bm5lbF9jaGFydF9kYXRhLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwiYWRkX2l0ZW1zX2Zyb21fdGVtcGxhdGVcIixuYW1lOlwiQWRkIGl0ZW1zIGZyb20gdGVtcGxhdGVcIixpY29uOlwiY29udGFjdF9zZWNvbmRcIix1cmw6dCtcIi9cIitlK1wiYWRkX2l0ZW1zX2Zyb21fdGVtcGxhdGVfZGF0YS5qc1wiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImFuZ3VsYXJcIn0se2RhdGFfdHlwZTpcIml0ZW1fcmVmXCIsbmFtZTpcIlJlZmVyZW5jZVwiLGljb246XCJyZWZlcmVuY2VcIix1cmw6dCtcIi9cIitlK1wiaXRlbVJlZl9kYXRhLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwiY2FsZW5kYXJcIixuYW1lOlwiQ2FsZW5kYXJcIixpY29uOlwiY2FsZW5kYXJcIixqczpcImh0dHBzOi8vZ3VkaHViLmNvbS9tb2R1bGVzL0Z1bGxDYWxlbmRhci1HaC1FbGVtZW50L2Rpc3QvbWFpbi5qcz90PTZcIixjc3M6XCJodHRwczovL2d1ZGh1Yi5jb20vbW9kdWxlcy9GdWxsQ2FsZW5kYXItR2gtRWxlbWVudC9kaXN0L3N0eWxlLmNzcz90PTFcIix0eXBlOlwiZ2hfZWxlbWVudFwiLHRlY2hub2xvZ3k6XCJjbGFzc1wifSx7ZGF0YV90eXBlOlwiZGF0YV9yZWZcIixuYW1lOlwiRGF0YSBSZWZlcmVuY2VcIixpY29uOlwiZGF0YV9yZWZlcmVuY2VcIix1cmw6dCtcIi9cIitlK1wiZGF0YV9yZWZfZGF0YS5qc1wiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImFuZ3VsYXJcIn0se2RhdGFfdHlwZTpcInRhYmxlXCIsbmFtZTpcIlRhYmxlXCIsaWNvbjpcInRhYmxlXCIsdXJsOnQrXCIvXCIrZStcInRhYmxlX2RhdGEuanNcIix0eXBlOlwiZ2hfZWxlbWVudFwiLHRlY2hub2xvZ3k6XCJhbmd1bGFyXCJ9LHtkYXRhX3R5cGU6XCJ0aWxlXCIsbmFtZTpcIlRpbGUgdGFibGVcIixpY29uOlwidGlsZV90YWJsZVwiLHVybDp0K1wiL1wiK2UrXCJ0aWxlX2RhdGEuanNcIix0eXBlOlwiZ2hfZWxlbWVudFwiLHRlY2hub2xvZ3k6XCJhbmd1bGFyXCJ9LHtkYXRhX3R5cGU6XCJmaWxlXCIsbmFtZTpcIkZpbGVcIixpY29uOlwiYm94XCIsdXJsOnQrXCIvXCIrZStcImZpbGVfZGF0YS5qc1wiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImFuZ3VsYXJcIn0se2RhdGFfdHlwZTpcImltYWdlXCIsbmFtZTpcIkltYWdlXCIsaWNvbjpcImltYWdlXCIsdXJsOnQrXCIvXCIrZStcImltYWdlX2RhdGEuanNcIix0eXBlOlwiZ2hfZWxlbWVudFwiLHRlY2hub2xvZ3k6XCJhbmd1bGFyXCJ9LHtkYXRhX3R5cGU6XCJ0ZXh0X2VkaXRvclwiLG5hbWU6XCJUZXh0IEVkaXRvclwiLGljb246XCJzcXVhcmVcIix1cmw6dCtcIi9cIitlK1widGV4dF9lZGl0b3JfZGF0YS5qc1wiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImFuZ3VsYXJcIn0se2RhdGFfdHlwZTpcInRpbnltc2VcIixuYW1lOlwiVGV4dCBlZGl0b3IgTVNFXCIsaWNvbjpcInRhZ1wiLHVybDp0K1wiL1wiK2UrXCJ0aW55bXNlX2RhdGEuanNcIix0eXBlOlwiZ2hfZWxlbWVudFwiLHRlY2hub2xvZ3k6XCJhbmd1bGFyXCJ9LHtkYXRhX3R5cGU6XCJkdXJhdGlvblwiLG5hbWU6XCJEdXJhdGlvblwiLGljb246XCJudW1iZXJfZ2hfZWxlbWVudFwiLHVybDp0K1wiL1wiK2UrXCJkdXJhdGlvbl9kYXRhLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwidXNlclwiLG5hbWU6XCJVc2VyXCIsaWNvbjpcInVzZXJfZ2hfZWxlbWVudFwiLHVybDp0K1wiL1wiK2UrXCJ1c2VyX2RhdGEuanNcIix0eXBlOlwiZ2hfZWxlbWVudFwiLHRlY2hub2xvZ3k6XCJhbmd1bGFyXCJ9LHtkYXRhX3R5cGU6XCJhcHBcIixuYW1lOlwiQXBwXCIsaWNvbjpcImFwcFwiLHVybDp0K1wiL1wiK2UrXCJhcHBsaWNhdGlvbl9kYXRhLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwiZmllbGRcIixuYW1lOlwiRmllbGRcIixpY29uOlwiZmllbGRfZ2hfZWxlbWVudFwiLHVybDp0K1wiL1wiK2UrXCJmaWVsZF9kYXRhLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwiYXZhaWxhYmxlXCIsbmFtZTpcIkF2YWlsYWJsZVwiLGljb246XCJhdmFpbGlibGVfZ2hfZWxlbWVudFwiLHVybDp0K1wiL1wiK2UrXCJhdmFpbGFibGVfZGF0YS5qc1wiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImFuZ3VsYXJcIn0se2RhdGFfdHlwZTpcInZpZXdfbGlzdFwiLG5hbWU6XCJWaWV3IExpc3RcIixpY29uOlwidmlld19saXN0XCIsdXJsOnQrXCIvXCIrZStcInZpZXdfbGlzdF9kYXRhLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwiY2FsY3VsYXRvclwiLG5hbWU6XCJDYWxjdWxhdG9yXCIsaWNvbjpcImNhbGN1bGF0b3JcIix1cmw6dCtcIi9cIitlK1wiY2FsY3VsYXRvcl9kYXRhLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwic3RyaW5nX2pvaW5cIixuYW1lOlwiU3RyaW5nIEpvaW5lclwiLGljb246XCJzdHJpbmdfam9pbl9naF9lbGVtZW50XCIsdXJsOnQrXCIvXCIrZStcInN0cmluZ19qb2luZXJfZGF0YS5qc1wiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImFuZ3VsYXJcIn0se2RhdGFfdHlwZTpcInNpZ25hdHVyZVwiLG5hbWU6XCJTaWduYXR1cmVcIixpY29uOlwic2lnbmF0dXJlXCIsdXJsOnQrXCIvXCIrZStcInNpZ25hdHVyZV9kYXRhLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwic2VuZEVtYWlsXCIsbmFtZTpcIlNlbmQgRW1haWxcIixpY29uOlwic2VuZF9lbWFpbF9naF9lbGVtZW50XCIsdXJsOnQrXCIvXCIrZStcInNlbmRfZW1haWxfZGF0YS5qc1wiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImFuZ3VsYXJcIn0se2RhdGFfdHlwZTpcImJvb2xlYW5cIixuYW1lOlwiWWVzL05vXCIsaWNvbjpcImJvb2xlbl9naF9lbGVtZW50XCIsdXJsOnQrXCIvXCIrZStcImJvb2xlYW5fZGF0YS5qc1wiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImFuZ3VsYXJcIn0se2RhdGFfdHlwZTpcInByb2R1Y3RfZ2FsbGVyeVwiLG5hbWU6XCJQcm9kdWN0IGdhbGxlcnlcIixpY29uOlwicHJvZHVjdF9nYWxsZXJ5XCIsdXJsOnQrXCIvXCIrZStcInByb2R1Y3RfZ2FsbGVyeV9kYXRhLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwib25saW5lX2ludmVudG9yeVwiLG5hbWU6XCJPbmxpbmUgaW52ZW50b3J5XCIsaWNvbjpcInNsYWJcIix1cmw6dCtcIi9cIitlK1wib25saW5lX2ludmVudG9yeV9kYXRhLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwiM2RfZWRnZXNcIixuYW1lOlwiM0QgRWRnZXNcIixpY29uOlwiM2RfZWRnZXNfZ2hfZWxlbWVudFwiLHVybDp0K1wiL1wiK2UrXCIzZF9lZGdlc19kYXRhLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwiY29sb3JfbGlzdFwiLG5hbWU6XCJDb2xvciBsaXN0XCIsaWNvbjpcImNpcmN1bGFyX2doX2VsZW1lbnRcIix1cmw6dCtcIi9cIitlK1wiY29sb3JfbGlzdF9kYXRhLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwiZ29fdG9fbGlua1wiLG5hbWU6XCJHbyB0byBMaW5rXCIsaWNvbjpcImdvX3RvX2xpbmtcIix1cmw6dCtcIi9cIitlK1wiZ29fdG9fbGlua19kYXRhLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwiZ29fdG9fdmlld1wiLG5hbWU6XCJHbyB0byBWaWV3XCIsaWNvbjpcImdvX3RvX3ZpZXdcIix1cmw6dCtcIi9cIitlK1wiZ29fdG9fdmlld19kYXRhLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwicmFuZ2VcIixuYW1lOlwiUmFuZ2VcIixpY29uOlwicmFuZ2VfZ2hfZWxlbWVudFwiLHVybDp0K1wiL1wiK2UrXCJyYW5nZV9kYXRhLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwiYmFyY29kZVwiLG5hbWU6XCJCYXJjb2RlXCIsaWNvbjpcImJhcmNvZGVfZ2hfZWxlbWVudFwiLHVybDp0K1wiL1wiK2UrXCJiYXJjb2RlX2RhdGEuanNcIix0eXBlOlwiZ2hfZWxlbWVudFwiLHRlY2hub2xvZ3k6XCJhbmd1bGFyXCJ9LHtkYXRhX3R5cGU6XCJpdGVtX3JlbW90ZV9hZGRcIixuYW1lOlwiSXRlbSByZW1vdGUgYWRkXCIsaWNvbjpcInJlbW90ZV9hZGRfZ2hfZWxlbWVudFwiLHVybDp0K1wiL1wiK2UrXCJpdGVtX3JlbW90ZV9hZGRfZGF0YS5qc1wiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImFuZ3VsYXJcIn0se2RhdGFfdHlwZTpcIml0ZW1fcmVtb3RlX3VwZGF0ZVwiLG5hbWU6XCJJdGVtIHJlbW90ZSB1cGRhdGVcIixpY29uOlwicmVtb3RlX3VwZGF0ZV9naF9lbGVtZW50XCIsdXJsOnQrXCIvXCIrZStcIml0ZW1fcmVtb3RlX3VwZGF0ZV9kYXRhLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwidGltZWxpbmVcIixuYW1lOlwiVGltZWxpbmVcIixpY29uOlwidGltZWxpbmVcIix1cmw6dCtcIi9cIitlK1widGltZWxpbmVfZGF0YS5qc1wiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImFuZ3VsYXJcIn0se2RhdGFfdHlwZTpcImRlbGV0ZV9pdGVtXCIsbmFtZTpcIkRlbGV0ZSBJdGVtXCIsaWNvbjpcInJ1YmJpc2hcIix1cmw6dCtcIi9cIitlK1wiZGVsZXRlX2FjdGlvbi5qc1wiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImFuZ3VsYXJcIn0se2RhdGFfdHlwZTpcInByaW50X2RvY1wiLG5hbWU6XCJQcmludCBkb2N1bWVudFwiLGljb246XCJwcmludFwiLHVybDp0K1wiL1wiK2UrXCJwcmludF9kb2NfYWN0aW9uLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwib3Blbl9pdGVtXCIsbmFtZTpcIk9wZW4gSXRlbVwiLGljb246XCJkZWxldGVcIixwcml2YXRlOiEwLHVybDp0K1wiL1wiK2UrXCJvcGVuX2l0ZW1fYWN0aW9uLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwiZWRpdF90ZW1wbGF0ZVwiLG5hbWU6XCJFZGl0IHRlbXBsYXRlXCIsaWNvbjpcImRlbGV0ZVwiLHByaXZhdGU6ITAsdXJsOnQrXCIvXCIrZStcImVkaXRfdGVtcGxhdGVfYWN0aW9uLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwib3Blbl9hcHBcIixwcml2YXRlOiEwLG5hbWU6XCJPcGVuIEFwcFwiLGljb246XCJkZWxldGVcIix1cmw6dCtcIi9cIitlK1wib3Blbl9hcHBfYWN0aW9uLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwidXNlcl9zZXR0aW5nc1wiLHByaXZhdGU6ITAsbmFtZTpcIlVzZXIgU2V0dGluZ3NcIixpY29uOlwiZGVsZXRlXCIsdXJsOnQrXCIvXCIrZStcInVzZXJfc2V0dGluZ3NfYWN0aW9uLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwiYXBwX3NoYXJpbmdcIixuYW1lOlwiU2hhcmluZ1wiLGljb246XCJzaGFyaW5nXCIsdXJsOnQrXCIvXCIrZStcInNoYXJpbmdfYWN0aW9uLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwiYXBwX2NvbnN0cnVjdG9yXCIscHJpdmF0ZTohMCxuYW1lOlwiQXBwIGNvbnN0cnVjdG9yXCIsaWNvbjpcImFwcF9jb25zdHJ1Y3RvclwiLHVybDp0K1wiL1wiK2UrXCJhcHBfY29uc3RydWN0b3JfYWN0aW9uLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwiYXBwX3NldHRpbmdzXCIsbmFtZTpcIkFwcCBTZXR0aW5nc1wiLGljb246XCJjb25maWd1cmF0aW9uXCIsdXJsOnQrXCIvXCIrZStcImFwcF9zZXR0aW5nc19hY3Rpb24uanNcIix0eXBlOlwiZ2hfZWxlbWVudFwiLHRlY2hub2xvZ3k6XCJhbmd1bGFyXCJ9LHtkYXRhX3R5cGU6XCJleHBvcnRfY3N2XCIsbmFtZTpcIkV4cG9ydCBDU1ZcIixpY29uOlwiZXhwb3J0X2NzdlwiLHVybDp0K1wiL1wiK2UrXCJleHBvcnRfY3N2LmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwiaW1wb3J0X2NzdlwiLG5hbWU6XCJJbXBvcnQgQ1NWXCIsaWNvbjpcImltcG9ydF9jc3ZcIix1cmw6dCtcIi9cIitlK1wiaW1wb3J0X2Nzdi5qc1wiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImFuZ3VsYXJcIn0se2RhdGFfdHlwZTpcImFkZF9pdGVtc1wiLG5hbWU6XCJBZGQgSXRlbXNcIixpY29uOlwicGx1c1wiLHVybDp0K1wiL1wiK2UrXCJhZGRfaXRlbXNfYWN0aW9uLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwidXBkYXRlX2l0ZW1zXCIsbmFtZTpcIlVwZGF0ZSBJdGVtc1wiLGljb246XCJ1cGRhdGVcIix1cmw6dCtcIi9cIitlK1widXBkYXRlX2l0ZW1zX2FjdGlvbi5qc1wiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImFuZ3VsYXJcIn0se2RhdGFfdHlwZTpcImluc3RhbGxfYXBwXCIsbmFtZTpcIkluc3RhbGxcIixpY29uOlwiaW5zdGFsbFwiLHVybDp0K1wiL1wiK2UrXCJpbnN0YWxsX2FwcF9hY3Rpb24uanNcIix0eXBlOlwiZ2hfZWxlbWVudFwiLHRlY2hub2xvZ3k6XCJhbmd1bGFyXCJ9LHtkYXRhX3R5cGU6XCJzZWFyY2hfYWN0aW9uXCIsbmFtZTpcIlNlYXJjaFwiLGljb246XCJzZWFyY2hcIix1cmw6dCtcIi9cIitlK1wic2VhcmNoX2FjdGlvbi5qc1wiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImFuZ3VsYXJcIn0se2RhdGFfdHlwZTpcImZpbHRlcl90YWJsZVwiLG5hbWU6XCJUYWJsZSBmaWx0ZXJcIixpY29uOlwiZmlsdGVyXCIsdXJsOnQrXCIvXCIrZStcImZpbHRlcl90YWJsZV9hY3Rpb24uanNcIix0eXBlOlwiZ2hfZWxlbWVudFwiLHRlY2hub2xvZ3k6XCJhbmd1bGFyXCJ9LHtkYXRhX3R5cGU6XCJzbGlkZXJcIixuYW1lOlwiU2xpZGVyXCIsaWNvbjpcInNsaWRlclwiLHVybDp0K1wiL1wiK2UrXCJzbGlkZXJfZGF0YS5qc1wiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImFuZ3VsYXJcIn0se2RhdGFfdHlwZTpcImNsb25lX2l0ZW1cIixuYW1lOlwiQ2xvbmUgSXRlbVwiLGljb246XCJkb3VibGVfcGx1c1wiLHVybDp0K1wiL1wiK2UrXCJjbG9uZV9pdGVtX2FjdGlvbi5qc1wiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImFuZ3VsYXJcIn0se2RhdGFfdHlwZTpcImNsb3NlXCIsbmFtZTpcIkNsb3NlXCIsaWNvbjpcImNyb3NzXCIsdXJsOnQrXCIvXCIrZStcImNsb3NlX2FjdGlvbi5qc1wiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImFuZ3VsYXJcIn0se2RhdGFfdHlwZTpcInBob25lXCIsbmFtZTpcIlBob25lXCIsaWNvbjpcInBob25lX3RoaW5cIix1cmw6dCtcIi9cIitlK1wicGhvbmVfZGF0YS5qc1wiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImFuZ3VsYXJcIn0se2RhdGFfdHlwZTpcImxpbmtcIixuYW1lOlwiTGlua1wiLGljb246XCJsaW5rX2doX2VsZW1lbnRcIix1cmw6dCtcIi9cIitlK1wibGlua19kYXRhLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwic2hlZHVsaW5nXCIsbmFtZTpcIlNoZWR1bGluZ1wiLGljb246XCJzY2hlZHVsaW5nXCIsdXJsOnQrXCIvXCIrZStcInNoZWR1bGluZ19kYXRhLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwicXJjb2RlXCIsbmFtZTpcIlFSIENvZGVcIixpY29uOlwicXJfY29kZVwiLHVybDp0K1wiL1wiK2UrXCJxcmNvZGVfZGF0YS5qc1wiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImFuZ3VsYXJcIn0se2RhdGFfdHlwZTpcImdyYXBoMmRcIixuYW1lOlwiR3JhcGhcIixpY29uOlwiZ3JhcGhcIix1cmw6dCtcIi9cIitlK1wiZ3JhcGgyZF9kYXRhLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwicXVvdGVfdG9vbFwiLG5hbWU6XCJRdW90ZSB0b29sXCIsaWNvbjpcInF1b3RlcnNcIix1cmw6dCtcIi9cIitlK1wicXVvdGVfdG9vbF9kYXRhLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwiY2FyZHNcIixuYW1lOlwiQ2FyZHNcIixpY29uOlwiY2FyZHNcIix1cmw6dCtcIi9cIitlK1wiY2FyZHNfZGF0YS5qc1wiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImFuZ3VsYXJcIn0se2RhdGFfdHlwZTpcImpzb25Db25zdHJ1Y3RvclwiLG5hbWU6XCJKc29uIENvbnN0cnVjdG9yXCIsaWNvbjpcImJ1dHRvblwiLHVybDp0K1wiL1wiK2UrXCJqc29uX2NvbnN0cnVjdG9yX2RhdGEuanNcIix0eXBlOlwiZ2hfZWxlbWVudFwiLHRlY2hub2xvZ3k6XCJhbmd1bGFyXCJ9LHtkYXRhX3R5cGU6XCJidXR0b25cIixuYW1lOlwiQnV0dG9uXCIsaWNvbjpcImJ1dHRvblwiLGpzOlwiaHR0cHM6Ly9ndWRodWIuY29tL21vZHVsZXMvYnV0dG9uX2FjdGlvbi9idXR0b25fYWN0aW9uLmpzP3Q9MVwiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImNsYXNzXCJ9LHtkYXRhX3R5cGU6XCJlZGl0b3Jqc1wiLG5hbWU6XCJFZGl0b3JKU1wiLGljb246XCJjb2RlX2VkaXRvclwiLGpzOlwiaHR0cHM6Ly9ndWRodWIuY29tL21vZHVsZXMvRWRpdG9yLUpzL2Rpc3QvbWFpbi5qcz90PTJcIixjc3M6XCJodHRwczovL2d1ZGh1Yi5jb20vbW9kdWxlcy9FZGl0b3ItSnMvZGlzdC9zdHlsZS5jc3M/dD0yXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiY2xhc3NcIn0se2RhdGFfdHlwZTpcImZpbHRlcl9hZHZhbmNlZFwiLG5hbWU6XCJGaWx0ZXIgQWR2YW5jZWRcIixpY29uOlwiZmlsdGVyX2FkdmFuY2VkXCIsdXJsOnQrXCIvXCIrZStcImZpbHRlcl9hZHZhbmNlZF9kYXRhLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwiY29kZV9lZGl0b3JcIixuYW1lOlwiQ29kZSBFZGl0b3JcIixpY29uOlwiY29kZV9lZGl0b3JcIix1cmw6dCtcIi9cIitlK1wiY29kZV9lZGl0b3JfZGF0YS5qc1wiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImFuZ3VsYXJcIn0se2RhdGFfdHlwZTpcImljb25cIixuYW1lOlwiSWNvblwiLGljb246XCJpY29uX2doX2VsZW1lbnRcIix1cmw6dCtcIi9cIitlK1wiaWNvbl9kYXRhLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwicXVvdGVSZXF1ZXN0XCIsbmFtZTpcIlF1b3RlIFJlcXVlc3RcIixpY29uOlwiaW52b2ljZXNcIix1cmw6dCtcIi9cIitlK1wicXVvdGVfcmVxdWVzdF9kYXRhLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwidmlld19jb250YWluZXJcIixuYW1lOlwiVmlldyBDb250YWluZXJcIixpY29uOlwicGVuY2lsXCIsdXJsOnQrXCIvXCIrZStcInZpZXdfY29udGFpbmVyX2RhdGEuanNcIix0eXBlOlwiZ2hfZWxlbWVudFwiLHRlY2hub2xvZ3k6XCJhbmd1bGFyXCJ9LHtkYXRhX3R5cGU6XCJlbGVtZW50X3JlZlwiLG5hbWU6XCJFbGVtZW50IFJlZmVyZW5jZVwiLGljb246XCJjbG91ZFN5bmNfZ2hfZWxlbWVudFwiLHVybDp0K1wiL1wiK2UrXCJlbGVtZW50X3JlZl9kYXRhLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwicXVvdGVfdG9vbF9vYmplY3RzX3JlbmRlcmVyXCIsbmFtZTpcIlF1b3RlIFRvb2wgUmVuZGVyZXJcIixpY29uOlwibF9jb3VudGVyXCIsdXJsOnQrXCIvXCIrZStcInF1b3RlX3Rvb2xfb2JqZWN0c19yZW5kZXJlcl9kYXRhLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwicXVvdGVfdG9vbF9vYmplY3RzX3JlbmRlcmVyX2dlbmVyYXRvclwiLG5hbWU6XCJRdW90ZSBUb29sIFBhcnRzIEdlbmVyYXRvclwiLGljb246XCJsX2NvdW50ZXJfYXJyb3dcIix1cmw6dCtcIi9cIitlK1wicXVvdGVfdG9vbF9vYmplY3RzX3JlbmRlcmVyX2dlbmVyYXRvcl9kYXRhLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwidHJpZ2dlclwiLG5hbWU6XCJUcmlnZ2VyXCIsaWNvbjpcImpvYlwiLHVybDp0K1wiL1wiK2UrXCJ0cmlnZ2VyX2RhdGEuanNcIix0eXBlOlwiZ2hfZWxlbWVudFwiLHRlY2hub2xvZ3k6XCJhbmd1bGFyXCJ9LHtkYXRhX3R5cGU6XCJ2b3RpbmdcIixuYW1lOlwiVm90aW5nXCIsaWNvbjpcImxpa2VfZ2hfZWxlbWVudFwiLHVybDp0K1wiL1wiK2UrXCJ2b3RpbmdfZGF0YS5qc1wiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImFuZ3VsYXJcIn0se2RhdGFfdHlwZTpcInZpZXdfdGFic1wiLG5hbWU6XCJWaWV3IFRhYlwiLGljb246XCJ0YWJzXCIsdXJsOnQrXCIvXCIrZStcInZpZXdfdGFicy5qc1wiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImFuZ3VsYXJcIn0se2RhdGFfdHlwZTpcImZpbHRlcl90YWJzXCIsbmFtZTpcIkZpbHRlciBUYWJzXCIsaWNvbjpcImZpbHRlcl90YWJzX2doX2VsZW1lbnRcIix1cmw6dCtcIi9cIitlK1wiZmlsdGVyX3RhYnMuanNcIix0eXBlOlwiZ2hfZWxlbWVudFwiLHRlY2hub2xvZ3k6XCJhbmd1bGFyXCJ9LHtkYXRhX3R5cGU6XCJncHNfY29vcmRzXCIsbmFtZTpcIkdQUyBDb29yZHNcIixpY29uOlwibG9jYXRpb25fZ2hfZWxlbWVudFwiLHVybDp0K1wiL1wiK2UrXCJncHNfY29vcmRzLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwiZ29vZ2xlX21hcFwiLG5hbWU6XCJHb29nbGUgTWFwXCIsaWNvbjpcImxvY2F0aW9uXCIsdXJsOnQrXCIvXCIrZStcImdvb2dsZV9tYXBfZGF0YS5qc1wiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImFuZ3VsYXJcIn0se2RhdGFfdHlwZTpcImRhdGFfbWlncmF0aW9uc1wiLG5hbWU6XCJEYXRhIG1pZ3JhdGlvbnNcIixpY29uOlwidmlld19saXN0X2doX2VsZW1lbnRcIix1cmw6dCtcIi9cIitlK1wiZGF0YV9taWdyYXRpb25zLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwiYWRkaXRpb25hbF9zZXR0aW5nc1wiLG5hbWU6XCJBZGRpdGlvbmFsIFNldHRpbmdzXCIsaWNvbjpcIlwiLHByaXZhdGU6ITAsdXJsOnQrXCIvXCIrZStcImdoX2FkZGl0aW9uYWxfc2V0dGluZ3NfZGF0YS5qc1wiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImFuZ3VsYXJcIn0se2RhdGFfdHlwZTpcInNlbmRfcmVxdWVzdFwiLG5hbWU6XCJTZW5kIFJlcXVlc3RcIixpY29uOlwic2VuZF9yZXF1ZXN0X2doX2VsZW1lbnRcIix1cmw6dCtcIi9cIitlK1wic2VuZF9yZXF1ZXN0X2RhdGEuanNcIix0eXBlOlwiZ2hfZWxlbWVudFwiLHRlY2hub2xvZ3k6XCJhbmd1bGFyXCJ9LHtkYXRhX3R5cGU6XCJ3ZWJjYW1cIixuYW1lOlwiV2ViIGNhbWVyYVwiLGljb246XCJ3ZWJjYW1fZ2hfZWxlbWVudFwiLHVybDp0K1wiL1wiK2UrXCJ3ZWJjYW1fZGF0YS5qc1wiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImFuZ3VsYXJcIn0se2RhdGFfdHlwZTpcImpzb25fdmlld2VyXCIsbmFtZTpcIkpTT04gdmlld2VyXCIsaWNvbjpcImpzb25fZ2hfZWxlbWVudFwiLHVybDp0K1wiL1wiK2UrXCJqc29uX3ZpZXdlcl9kYXRhLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwibm90aWZpY2F0aW9uc1wiLG5hbWU6XCJOb3RpZmljYXRpb25zXCIsaWNvbjpcImZ1bGxfZ2hfZWxlbWVudFwiLHVybDp0K1wiL1wiK2UrXCJub3RpZmljYXRpb25zX2RhdGEuanNcIix0eXBlOlwiZ2hfZWxlbWVudFwiLHRlY2hub2xvZ3k6XCJhbmd1bGFyXCJ9LHtkYXRhX3R5cGU6XCJhcGlcIixuYW1lOlwiQVBJXCIsaWNvbjpcImpvYlwiLHVybDp0K1wiL1wiK2UrXCJhcGlfZGF0YS5qc1wiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImFuZ3VsYXJcIn0se2RhdGFfdHlwZTpcInNtYXJ0X2lucHV0XCIsbmFtZTpcIlNtYXJ0IElucHV0XCIsaWNvbjpcInJva2V0XCIsdXJsOnQrXCIvXCIrZStcInNtYXJ0X2lucHV0X2RhdGEuanNcIix0eXBlOlwiZ2hfZWxlbWVudFwiLHRlY2hub2xvZ3k6XCJhbmd1bGFyXCJ9LHtkYXRhX3R5cGU6XCJqc29uX2VkaXRvclwiLG5hbWU6XCJKU09OIEVkaXRvclwiLGljb246XCJjb2RlXCIsdXJsOnQrXCIvXCIrZStcImpzb25fZWRpdG9yX2RhdGEuanNcIix0eXBlOlwiZ2hfZWxlbWVudFwiLHRlY2hub2xvZ3k6XCJhbmd1bGFyXCJ9LHtkYXRhX3R5cGU6XCJncmFwZXNfaHRtbF9lZGl0b3JcIixuYW1lOlwiR3JhcGVzIEh0bWwgRWRpdG9yXCIsaWNvbjpcImNvZGVfZWRpdG9yXCIsdXJsOnQrXCIvXCIrZStcImdyYXBlc19odG1sX2VkaXRvcl9kYXRhLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwicXVpelwiLG5hbWU6XCJRdWl6XCIsaWNvbjpcInF1aXpfZ2hfZWxlbWVudFwiLHVybDp0K1wiL1wiK2UrXCJxdWl6X2RhdGEuanNcIix0eXBlOlwiZ2hfZWxlbWVudFwiLHRlY2hub2xvZ3k6XCJhbmd1bGFyXCJ9LHtkYXRhX3R5cGU6XCJwYXNzd29yZF9pbnB1dFwiLG5hbWU6XCJQYXNzd29yZFwiLGljb246XCJsb2NrX2doX2VsZW1lbnRcIix1cmw6dCtcIi9cIitlK1wicGFzc3dvcmRfaW5wdXRfZGF0YS5qc1wiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImFuZ3VsYXJcIn0se2RhdGFfdHlwZTpcInZzX2NvZGVcIixuYW1lOlwiVlMgQ29kZVwiLGljb246XCJjb2RlX2VkaXRvclwiLHVybDp0K1wiL1wiK2UrXCJ2c19jb2RlX2RhdGEuanNcIix0eXBlOlwiZ2hfZWxlbWVudFwiLHRlY2hub2xvZ3k6XCJhbmd1bGFyXCJ9LHtkYXRhX3R5cGU6XCJuZXN0ZWRfbGlzdFwiLG5hbWU6XCJOZXN0ZWQgTGlzdFwiLGljb246XCJzY2hlZHVsaW5nXCIsanM6XCJodHRwczovL2d1ZGh1Yi5jb20vbW9kdWxlcy9OZXN0ZWQtTGlzdC9kaXN0L21haW4uanM/dD0yXCIsY3NzOlwiaHR0cHM6Ly9ndWRodWIuY29tL21vZHVsZXMvTmVzdGVkLUxpc3QvZGlzdC9zdHlsZS5jc3M/dD0yXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiY2xhc3NcIn0se2RhdGFfdHlwZTpcImNvdW50ZXJ0b3Bfc21hcnRfcXVvdGVcIixuYW1lOlwiQ291bnRlcnRvcCBTbWFydCBRdW90ZVwiLGljb246XCJxdW90ZXJzXCIsdXJsOnQrXCIvXCIrZStcImNvdW50ZXJ0b3Bfc21hcnRfcXVvdGVfZGF0YS5qc1wiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImFuZ3VsYXJcIn0se2RhdGFfdHlwZTpcIm1hcmtkb3duX3ZpZXdlclwiLG5hbWU6XCJNYXJrZG93biB2aWV3ZXJcIixpY29uOlwiY29kZV9lZGl0b3JcIixqczpcImh0dHBzOi8vZ3VkaHViLmNvbS9tb2R1bGVzL21hcmtkb3duLWl0LWdoLWVsZW1lbnQvZGlzdC9tYWluLmpzP3Q9MVwiLGNzczpcImh0dHBzOi8vZ3VkaHViLmNvbS9tb2R1bGVzL21hcmtkb3duLWl0LWdoLWVsZW1lbnQvZGlzdC9zdHlsZS5jc3M/dD0xXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiY2xhc3NcIn0se2RhdGFfdHlwZTpcImh0bWxfdmlld2VyXCIsbmFtZTpcIkhUTUwgVmlld2VyXCIsaWNvbjpcImNvZGVfZWRpdG9yXCIsanM6XCJodHRwczovL2d1ZGh1Yi5jb20vbW9kdWxlcy9IVE1MLVZpZXdlci9kaXN0L21haW4uanM/dD0xXCIsY3NzOlwiaHR0cHM6Ly9ndWRodWIuY29tL21vZHVsZXMvSFRNTC1WaWV3ZXIvZGlzdC9zdHlsZS5jc3M/dD0xXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiY2xhc3NcIn0se2RhdGFfdHlwZTpcImVsZW1lbnRfY3VzdG9taXplclwiLG5hbWU6XCJFbGVtZW50IEN1c3RvbWl6ZXJcIixpY29uOlwicGVuY2lsXCIsdXJsOnQrXCIvXCIrZStcImVsZW1lbnRfY3VzdG9taXplcl9kYXRhLmpzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiYW5ndWxhclwifSx7ZGF0YV90eXBlOlwidGFza1wiLG5hbWU6XCJUYXNrXCIsaWNvbjpcInRhYmxlXCIsdXJsOnQrXCIvXCIrZStcInRhc2tfZGF0YS5qc1wiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImFuZ3VsYXJcIn0se2RhdGFfdHlwZTpcImNyb25fcGlja2VyXCIsbmFtZTpcIkNyb24gUGlja2VyXCIsaWNvbjpcInRhYmxlXCIsanM6XCJodHRwczovL2d1ZGh1Yi5jb20vbW9kdWxlcy9Dcm9uLVBpY2tlci9kaXN0L21haW4uanM/dD0yXCIsY3NzOlwiaHR0cHM6Ly9ndWRodWIuY29tL21vZHVsZXMvQ3Jvbi1QaWNrZXIvZGlzdC9zdHlsZS5jc3M/dD0yXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiY2xhc3NcIn0se2RhdGFfdHlwZTpcImJhbGFuY2Vfc2hlZXRcIixuYW1lOlwiQmFsYW5jZSBTaGVldFwiLGljb246XCJ0YWJsZVwiLGpzOlwiaHR0cHM6Ly9ndWRodWIuY29tL21vZHVsZXMvYmFsYW5jZS1zaGVldC9kaXN0L21haW4uanM/dD0yXCIsY3NzOlwiaHR0cHM6Ly9ndWRodWIuY29tL21vZHVsZXMvYmFsYW5jZS1zaGVldC9kaXN0L3N0eWxlLmNzcz90PTJcIix0eXBlOlwiZ2hfZWxlbWVudFwiLHRlY2hub2xvZ3k6XCJjbGFzc1wifSx7ZGF0YV90eXBlOlwicXVvdGVfZm9ybVwiLG5hbWU6XCJRdW90ZSBGb3JtXCIsaWNvbjpcInRhYmxlXCIsanM6XCJodHRwczovL2d1ZGh1Yi5jb20vbW9kdWxlcy9jb3VudGVydG9wLXF1b3RlLWZvcm0vZGlzdC9tYWluLmpzXCIsY3NzOlwiaHR0cHM6Ly9ndWRodWIuY29tL21vZHVsZXMvY291bnRlcnRvcC1xdW90ZS1mb3JtL2Rpc3Qvc3R5bGUuY3NzXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiY2xhc3NcIn0se2RhdGFfdHlwZTpcInN0YXRpY19uZXN0ZWRfbGlzdFwiLG5hbWU6XCJOZXN0ZWQgRmlsdGVyXCIsaWNvbjpcInNjaGVkdWxpbmdcIixqczpcImh0dHBzOi8vZ3VkaHViLmNvbS9tb2R1bGVzL25lc3RlZC1maWx0ZXIvZGlzdC9tYWluLmpzP3Q9MVwiLGNzczpcImh0dHBzOi8vZ3VkaHViLmNvbS9tb2R1bGVzL25lc3RlZC1maWx0ZXIvZGlzdC9zdHlsZS5jc3M/dD0xXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiY2xhc3NcIn0se2RhdGFfdHlwZTpcImNvbnZlcnNhdGlvbnNcIixuYW1lOlwiQ29udmVyc2F0aW9uc1wiLGljb246XCJ0aW1lbGluZVwiLGpzOlwiaHR0cHM6Ly9ndWRodWIuY29tL21vZHVsZXMvY29udmVyc2F0aW9uL2Rpc3QvbWFpbi5qcz90PTFcIixjc3M6XCJodHRwczovL2d1ZGh1Yi5jb20vbW9kdWxlcy9jb252ZXJzYXRpb24vZGlzdC9zdHlsZS5jc3M/dD0xXCIsdHlwZTpcImdoX2VsZW1lbnRcIix0ZWNobm9sb2d5OlwiY2xhc3NcIn0se2RhdGFfdHlwZTpcInN0dWR5X2pvdXJuYWxcIixuYW1lOlwiU3R1ZHkgSm91cm5hbFwiLGljb246XCJ0aW1lbGluZVwiLGpzOlwiaHR0cHM6Ly9ndWRodWIuY29tL21vZHVsZXMvU3R1ZHktSm91cm5hbC9kaXN0L21haW4uanM/dD0xXCIsY3NzOlwiaHR0cHM6Ly9ndWRodWIuY29tL21vZHVsZXMvU3R1ZHktSm91cm5hbC9kaXN0L3N0eWxlLmNzc1wiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImNsYXNzXCJ9LHtkYXRhX3R5cGU6XCJzdHVkeV9zY2hlZHVsZVwiLG5hbWU6XCJTdHVkeSBTY2hlZHVsZVwiLGljb246XCJ0aW1lbGluZVwiLGpzOlwiaHR0cHM6Ly9ndWRodWIuY29tL21vZHVsZXMvU3R1ZHktU2NoZWR1bGUvZGlzdC9tYWluLmpzP3Q9MVwiLGNzczpcImh0dHBzOi8vZ3VkaHViLmNvbS9tb2R1bGVzL1N0dWR5LVNjaGVkdWxlL2Rpc3Qvc3R5bGUuY3NzP3Q9MVwiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImNsYXNzXCJ9LHtkYXRhX3R5cGU6XCJhdmF0YXJcIixuYW1lOlwiQXZhdGFyXCIsaWNvbjpcInVzZXJcIixqczpcImh0dHBzOi8vZ3VkaHViLmNvbS9tb2R1bGVzL0doLUF2YXRhci9kaXN0L21haW4uanM/dD0xXCIsY3NzOlwiaHR0cHM6Ly9ndWRodWIuY29tL21vZHVsZXMvR2gtQXZhdGFyL2Rpc3Qvc3R5bGUuY3NzP3Q9MVwiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImNsYXNzXCJ9LHtkYXRhX3R5cGU6XCJ0ZXh0X2FyZWFcIixuYW1lOlwiVGV4dCBBcmVhXCIsaWNvbjpcInRleHRfaWNvblwiLGpzOlwiaHR0cHM6Ly9ndWRodWIuY29tL21vZHVsZXMvdGV4dC1hcmVhLWdoZS9kaXN0L21haW4uanM/dD0zXCIsY3NzOlwiaHR0cHM6Ly9ndWRodWIuY29tL21vZHVsZXMvdGV4dC1hcmVhLWdoZS9kaXN0L3N0eWxlLmNzc1wiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImNsYXNzXCJ9LHtkYXRhX3R5cGU6XCJyZXNvdXJjZV9jYWxlbmRhclwiLG5hbWU6XCJSZXNvdXJjZSDQoWFsZW5kYXJcIixpY29uOlwiY2FsZW5kYXJcIix1cmw6dCtcIi9cIitlK1wicmVzb3VyY2VfY2FsZW5kYXJfZGF0YS5qc1wiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImFuZ3VsYXJcIn0se2RhdGFfdHlwZTpcInZpc3VhbGl6ZXJfd2l0aF9jb250cm9sX3BhbmVsXCIsbmFtZTpcIlZpc3VhbGl6ZXIgV2l0aCBDb250cm9sIFBhbmVsXCIsaWNvbjpcInZpc3VhbGl6ZXJcIix1cmw6dCtcIi9cIitlK1widmlzdWFsaXplcl93aXRoX2NvbnRyb2xfcGFuZWxfZGF0YS5qc1wiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImFuZ3VsYXJcIn0se2RhdGFfdHlwZTpcInN2Z190b19wZGZcIixuYW1lOlwiU1ZHIFRvIFBERlwiLGljb246XCJib3hcIixqczpcImh0dHBzOi8vZ3VkaHViLmNvbS9tb2R1bGVzL1NWRy10by1QREYtR2gtRWxlbWVudC9kaXN0L21haW4uanNcIixjc3M6XCJodHRwczovL2d1ZGh1Yi5jb20vbW9kdWxlcy9TVkctdG8tUERGLUdoLUVsZW1lbnQvZGlzdC9zdHlsZS5jc3NcIix0eXBlOlwiZ2hfZWxlbWVudFwiLHRlY2hub2xvZ3k6XCJjbGFzc1wifSx7ZGF0YV90eXBlOlwicmVjeWNsZV9iaW5cIixuYW1lOlwiUmVjeWNsZSBCaW5cIixpY29uOlwicmVjeWNsZV9iaW5cIix1cmw6dCtcIi9cIitlK1wicmVjeWNsZV9iaW5fZGF0YS5qc1wiLHR5cGU6XCJnaF9lbGVtZW50XCIsdGVjaG5vbG9neTpcImFuZ3VsYXJcIn0se2RhdGFfdHlwZTpcImFzc2Vzc21lbnRfam91cm51YWxcIixuYW1lOlwiQXNzZXNzbWVudCBKb3VybnVhbFwiLGljb246XCJ0ZXh0X2ljb25cIixqczpcImh0dHBzOi8vZ3VkaHViLmNvbS9tb2R1bGVzL0Fzc2Vzc21lbnQtSm91cm5hbC9kaXN0L21haW4uanNcIixjc3M6XCJodHRwczovL2d1ZGh1Yi5jb20vbW9kdWxlcy9Bc3Nlc3NtZW50LUpvdXJuYWwvZGlzdC9zdHlsZS5jc3NcIix0eXBlOlwiZ2hfZWxlbWVudFwiLHRlY2hub2xvZ3k6XCJjbGFzc1wifSx7ZGF0YV90eXBlOlwiQVBJXCIsbmFtZTpcIkFQSVwiLHVybDp0K1wiL1wiK3IrXCJhcGlfbm9kZS5qc1wiLHR5cGU6XCJhdXRvbWF0aW9uXCIsaWNvbjpcImF1dG9tYXRpb25fYXBpXCIscHJpdmF0ZTohMH0se2RhdGFfdHlwZTpcIkNhbGN1bGF0b3JcIixuYW1lOlwiQ2FsY3VsYXRvclwiLHVybDp0K1wiL1wiK3IrXCJjYWxjdWxhdG9yLmpzXCIsdHlwZTpcImF1dG9tYXRpb25cIixpY29uOlwiYXV0b21hdGlvbl9jYWxjdWxhdG9yXCJ9LHtkYXRhX3R5cGU6XCJDb21wYXJlSXRlbXNcIixuYW1lOlwiQ29tcGFyZSBJdGVtc1wiLHVybDp0K1wiL1wiK3IrXCJjb21wYXJlX2l0ZW1zLmpzXCIsdHlwZTpcImF1dG9tYXRpb25cIixpY29uOlwiYXV0b21hdGlvbl9jb21wYXJlX2l0ZW1zXCJ9LHtkYXRhX3R5cGU6XCJDb25zdGFudHNcIixuYW1lOlwiQ29uc3RhbnRzXCIsdXJsOnQrXCIvXCIrcitcImNvbnN0YW50cy5qc1wiLHR5cGU6XCJhdXRvbWF0aW9uXCIsaWNvbjpcImF1dG9tYXRpb25fY29uc3RhbnRzXCJ9LHtkYXRhX3R5cGU6XCJDcmVhdGVGaWxlc1wiLG5hbWU6XCJDcmVhdGUgRmlsZXNcIix1cmw6dCtcIi9cIityK1wiY3JlYXRlX2ZpbGVzLmpzXCIsdHlwZTpcImF1dG9tYXRpb25cIixpY29uOlwiYXV0b21hdGlvbl9jcmVhdGVfZmlsZXNcIn0se2RhdGFfdHlwZTpcIkNyZWF0ZUl0ZW1zQXBpXCIsbmFtZTpcIkNyZWF0ZSBJdGVtcyBBcGlcIix1cmw6dCtcIi9cIityK1wiY3JlYXRlX2l0ZW1fYXBpLmpzXCIsdHlwZTpcImF1dG9tYXRpb25cIixpY29uOlwiYXV0b21hdGlvbl9jcmVhdGVfaXRlbXNfYXBpXCJ9LHtkYXRhX3R5cGU6XCJGaWxlRHVwbGljYXRlXCIsbmFtZTpcIkZpbGUgRHVwbGljYXRlXCIsdXJsOnQrXCIvXCIrcitcImZpbGVfZHVwbGljYXRlLmpzXCIsdHlwZTpcImF1dG9tYXRpb25cIixpY29uOlwiYXV0b21hdGlvbl9maWxlX2R1cGxpY2F0ZVwifSx7ZGF0YV90eXBlOlwiRmlsdGVyXCIsbmFtZTpcIkZpbHRlclwiLHVybDp0K1wiL1wiK3IrXCJmaWx0ZXJfbm9kZS5qc1wiLHR5cGU6XCJhdXRvbWF0aW9uXCIsaWNvbjpcImZpbHRlclwifSx7ZGF0YV90eXBlOlwiR2V0SXRlbUJ5SXRlbVJlZlwiLG5hbWU6XCJHZXQgSXRlbSBCeSBJdGVtIFJlZlwiLHVybDp0K1wiL1wiK3IrXCJnZXRfaXRlbV9ieV9pdGVtX3JlZi5qc1wiLHR5cGU6XCJhdXRvbWF0aW9uXCIsaWNvbjpcImF1dG9tYXRpb25fZ2V0X2l0ZW1fYnlfaXRlbV9yZWZcIn0se2RhdGFfdHlwZTpcIkdldEl0ZW1zXCIsbmFtZTpcIkdldCBJdGVtc1wiLHVybDp0K1wiL1wiK3IrXCJnZXRfaXRlbXMuanNcIix0eXBlOlwiYXV0b21hdGlvblwiLGljb246XCJhdXRvbWF0aW9uX2dldF9pdGVtc1wifSx7ZGF0YV90eXBlOlwiR2hFbGVtZW50Tm9kZVwiLG5hbWU6XCJHaCBFbGVtZW50IE5vZGVcIix1cmw6dCtcIi9cIityK1wiZ2hfZWxlbWVudF9ub2RlLmpzXCIsdHlwZTpcImF1dG9tYXRpb25cIixpY29uOlwiYXV0b21hdGlvbl9naF9lbGVtZW50X25vZGVcIixwcml2YXRlOiEwLGNyZWF0ZWRfZm9yOltcIkdoRWxlbWVudFwiXX0se2RhdGFfdHlwZTpcIklmQ29uZGl0aW9uXCIsbmFtZTpcIklmIENvbmRpdGlvblwiLHVybDp0K1wiL1wiK3IrXCJpZl9jb25kaXRpb24uanNcIix0eXBlOlwiYXV0b21hdGlvblwiLGljb246XCJhdXRvbWF0aW9uX2lmX2NvbmRpdGlvblwifSx7ZGF0YV90eXBlOlwiSXRlbUNvbnN0cnVjdG9yXCIsbmFtZTpcIkl0ZW0gQ29uc3RydWN0b3JcIix1cmw6dCtcIi9cIityK1wiaXRlbV9jb25zdHJ1Y3Rvci5qc1wiLHR5cGU6XCJhdXRvbWF0aW9uXCIsaWNvbjpcImF1dG9tYXRpb25faXRlbV9jb25zdHJ1Y3RvclwifSx7ZGF0YV90eXBlOlwiSXRlbURlc3RydWN0b3JcIixuYW1lOlwiSXRlbSBEZXN0cnVjdG9yXCIsdXJsOnQrXCIvXCIrcitcIml0ZW1fZGVzdHJ1Y3Rvci5qc1wiLHR5cGU6XCJhdXRvbWF0aW9uXCIsaWNvbjpcImF1dG9tYXRpb25faXRlbV9kZXN0cnVjdG9yXCJ9LHtkYXRhX3R5cGU6XCJKU09OU2NoZW1lXCIsbmFtZTpcIkpTT04gU2NoZW1lXCIsdXJsOnQrXCIvXCIrcitcImpzb25fc2NoZW1lLmpzXCIsdHlwZTpcImF1dG9tYXRpb25cIixpY29uOlwiYXV0b21hdGlvbl9qc29uX3NjaGVtZVwifSx7ZGF0YV90eXBlOlwiTWVyZ2VJdGVtc1wiLG5hbWU6XCJNZXJnZSBJdGVtc1wiLHVybDp0K1wiL1wiK3IrXCJtZXJnZV9pdGVtcy5qc1wiLHR5cGU6XCJhdXRvbWF0aW9uXCIsaWNvbjpcImF1dG9tYXRpb25fbWVyZ2VfaXRlbXNcIn0se2RhdGFfdHlwZTpcIk1lc3NhZ2VDb25zdHJ1Y3RvclwiLG5hbWU6XCJNZXNzYWdlIENvbnN0cnVjdG9yXCIsdXJsOnQrXCIvXCIrcitcIm1lc3NhZ2VfY29uc3RydWN0b3IuanNcIix0eXBlOlwiYXV0b21hdGlvblwiLGljb246XCJhdXRvbWF0aW9uX21lc3NhZ2VfY29uc3RydWN0b3JcIn0se2RhdGFfdHlwZTpcIk9iamVjdFRvSXRlbVwiLG5hbWU6XCJPYmplY3QgVG8gSXRlbVwiLHVybDp0K1wiL1wiK3IrXCJvYmpfdG9faXRlbS5qc1wiLHR5cGU6XCJhdXRvbWF0aW9uXCIsaWNvbjpcImF1dG9tYXRpb25fb2JqZWN0X3RvX2l0ZW1cIn0se2RhdGFfdHlwZTpcIk9iamVjdENvbnN0cnVjdG9yXCIsbmFtZTpcIk9iamVjdCBDb25zdHJ1Y3RvclwiLHVybDp0K1wiL1wiK3IrXCJvYmplY3RfY29uc3RydWN0b3IuanNcIix0eXBlOlwiYXV0b21hdGlvblwiLGljb246XCJhdXRvbWF0aW9uX29iamVjdF9jb25zdHJ1Y3RvclwifSx7ZGF0YV90eXBlOlwiT2JqZWN0RGVzdHJ1Y3RvclwiLG5hbWU6XCJPYmplY3QgRGVzdHJ1Y3RvclwiLHVybDp0K1wiL1wiK3IrXCJvYmplY3RfZGVzdHJ1Y3Rvci5qc1wiLHR5cGU6XCJhdXRvbWF0aW9uXCIsaWNvbjpcImF1dG9tYXRpb25fb2JqZWN0X2Rlc3RydWN0b3JcIn0se2RhdGFfdHlwZTpcIlBvcHVsYXRlRWxlbWVudFwiLG5hbWU6XCJQb3B1bGF0ZSBFbGVtZW50XCIsdXJsOnQrXCIvXCIrcitcInBvcHVsYXRlX2VsZW1lbnQuanNcIix0eXBlOlwiYXV0b21hdGlvblwiLGljb246XCJhdXRvbWF0aW9uX3BvcHVsYXRlX2VsZW1lbnRcIixwcml2YXRlOiEwLGNyZWF0ZWRfZm9yOltcIkdoRWxlbWVudFwiXX0se2RhdGFfdHlwZTpcIlBvcHVsYXRlSXRlbXNcIixuYW1lOlwiUG9wdWxhdGUgSXRlbXNcIix1cmw6dCtcIi9cIityK1wicG9wdWxhdGVfaXRlbXMuanNcIix0eXBlOlwiYXV0b21hdGlvblwiLGljb246XCJhdXRvbWF0aW9uX3BvcHVsYXRlX2l0ZW1zXCJ9LHtkYXRhX3R5cGU6XCJQb3B1bGF0ZVdpdGhEYXRlXCIsbmFtZTpcIlBvcHVsYXRlIFdpdGggRGF0ZVwiLHVybDp0K1wiL1wiK3IrXCJwb3B1bGF0ZV93aXRoX2RhdGUuanNcIix0eXBlOlwiYXV0b21hdGlvblwiLGljb246XCJhdXRvbWF0aW9uX3BvcHVsYXRlX3dpdGhfZGF0ZVwifSx7ZGF0YV90eXBlOlwiUG9wdWxhdGVXaXRoSXRlbVJlZlwiLG5hbWU6XCJQb3B1bGF0ZSB3aXRoIEl0ZW0gUmVmXCIsdXJsOnQrXCIvXCIrcitcInBvcHVsYXRlX3dpdGhfaXRlbV9yZWYuanNcIix0eXBlOlwiYXV0b21hdGlvblwiLGljb246XCJhdXRvbWF0aW9uX3BvcHVsYXRlX3dpdGhfaXRlbV9yZWZcIn0se2RhdGFfdHlwZTpcIlBvcFVwRm9ybVwiLG5hbWU6XCJQb3AgVXAgRm9ybVwiLHVybDp0K1wiL1wiK3IrXCJwb3B1cF9mb3JtLmpzXCIsdHlwZTpcImF1dG9tYXRpb25cIixpY29uOlwiYXV0b21hdGlvbl9wb3BfdXBfZm9ybVwiLHByaXZhdGU6ITAsY3JlYXRlZF9mb3I6W1wiUXVpelwiLFwiR2hFbGVtZW50XCIsXCJTbWFydElucHV0XCIsXCJJdGVyYXRvclwiXX0se2RhdGFfdHlwZTpcIlF1aXpGb3JtXCIsbmFtZTpcIlF1aXogRm9ybVwiLHVybDp0K1wiL1wiK3IrXCJxdWl6X2Zvcm0uanNcIix0eXBlOlwiYXV0b21hdGlvblwiLGljb246XCJhdXRvbWF0aW9uX3F1aXpfZm9ybVwiLHByaXZhdGU6ITAsY3JlYXRlZF9mb3I6W1wiUXVpelwiXX0se2RhdGFfdHlwZTpcIlF1aXpOb2RlXCIsbmFtZTpcIlF1aXogTm9kZVwiLHVybDp0K1wiL1wiK3IrXCJxdWl6X25vZGUuanNcIix0eXBlOlwiYXV0b21hdGlvblwiLGljb246XCJhdXRvbWF0aW9uX3F1aXpfbm9kZVwiLHByaXZhdGU6ITB9LHtkYXRhX3R5cGU6XCJSZXF1ZXN0XCIsbmFtZTpcIlJlcXVlc3RcIix1cmw6dCtcIi9cIityK1wicmVxdWVzdF9ub2RlLmpzXCIsdHlwZTpcImF1dG9tYXRpb25cIixpY29uOlwiYXV0b21hdGlvbl9yZXF1ZXN0XCJ9LHtkYXRhX3R5cGU6XCJSZXNwb25zZVwiLG5hbWU6XCJSZXNwb25zZVwiLHVybDp0K1wiL1wiK3IrXCJyZXNwb25zZV9ub2RlLmpzXCIsdHlwZTpcImF1dG9tYXRpb25cIixpY29uOlwiYXV0b21hdGlvbl9yZXNwb25zZVwiLHByaXZhdGU6ITAsY3JlYXRlZF9mb3I6W1wiQVBJXCJdfSx7ZGF0YV90eXBlOlwiU21hcnRJbnB1dFwiLG5hbWU6XCJTbWFydCBJbnB1dFwiLHVybDp0K1wiL1wiK3IrXCJzbWFydF9pbnB1dC5qc1wiLHR5cGU6XCJhdXRvbWF0aW9uXCIsaWNvbjpcImF1dG9tYXRpb25fc21hcnRfaW5wdXRcIixwcml2YXRlOiEwfSx7ZGF0YV90eXBlOlwiVHJpZ2dlclwiLG5hbWU6XCJUcmlnZ2VyXCIsdXJsOnQrXCIvXCIrcitcInRyaWdnZXJfbm9kZS5qc1wiLHR5cGU6XCJhdXRvbWF0aW9uXCIsaWNvbjpcImF1dG9tYXRpb25fdHJpZ2dlclwiLHByaXZhdGU6ITB9LHtkYXRhX3R5cGU6XCJUd2lsaW9TTVNcIixuYW1lOlwiVHdpbGlvIFNNU1wiLHVybDp0K1wiL1wiK3IrXCJ0d2lsaW9fc21zLmpzXCIsdHlwZTpcImF1dG9tYXRpb25cIixpY29uOlwiYXV0b21hdGlvbl90d2lsaW9cIn0se2RhdGFfdHlwZTpcIlR3aWxpb0F1dGhcIixuYW1lOlwiVHdpbGlvIEF1dGhcIix1cmw6dCtcIi9cIityK1widHdpbGlvX2F1dGguanNcIix0eXBlOlwiYXV0b21hdGlvblwiLGljb246XCJ0YWJsZVwifSx7ZGF0YV90eXBlOlwiVHdpbGlvRGV2aWNlXCIsbmFtZTpcIlR3aWxpbyBEZXZpY2VcIix1cmw6dCtcIi9cIityK1widHdpbGlvX2RldmljZS5qc1wiLHR5cGU6XCJhdXRvbWF0aW9uXCIsaWNvbjpcInRhYmxlXCJ9LHtkYXRhX3R5cGU6XCJVcGRhdGVJdGVtc0FwaVwiLG5hbWU6XCJVcGRhdGUgSXRlbXMgQXBpXCIsdXJsOnQrXCIvXCIrcitcInVwZGF0ZV9pdGVtc19hcGkuanNcIix0eXBlOlwiYXV0b21hdGlvblwiLGljb246XCJhdXRvbWF0aW9uX3VwZGF0ZV9pdGVtc19hcGlcIn0se2RhdGFfdHlwZTpcIkdvb2dsZUNhbGVuZGFyXCIsbmFtZTpcIkdvb2dsZSBDYWxlbmRhclwiLHVybDp0K1wiL1wiK3IrXCJnb29nbGVfY2FsZW5kYXIuanNcIix0eXBlOlwiYXV0b21hdGlvblwiLGljb246XCJjYWxlbmRhclwifSx7ZGF0YV90eXBlOlwiVmVyaWZ5RW1haWxcIixuYW1lOlwiVmVyaWZ5IGVtYWlsXCIsdXJsOnQrXCIvXCIrcitcInZlcmlmeV9lbWFpbC5qc1wiLHR5cGU6XCJhdXRvbWF0aW9uXCIsaWNvbjpcImNoZWNrX2luX2NpcmNsZVwifSx7ZGF0YV90eXBlOlwiSXRlcmF0b3JcIixuYW1lOlwiSXRlcmF0b3JcIix1cmw6dCtcIi9cIityK1wiaXRlcmF0b3IuanNcIix0eXBlOlwiYXV0b21hdGlvblwiLGljb246XCJ1cGRhdGVcIn0se2RhdGFfdHlwZTpcIkl0ZXJhdG9ySW5wdXRcIixuYW1lOlwiSXRlcmF0b3IgSW5wdXRcIix1cmw6dCtcIi9cIityK1wiaXRlcmF0b3JfaW5wdXQuanNcIix0eXBlOlwiYXV0b21hdGlvblwiLGljb246XCJhcnJvd19yaWdodFwiLHByaXZhdGU6ITB9LHtkYXRhX3R5cGU6XCJJdGVyYXRvck91dHB1dFwiLG5hbWU6XCJJdGVyYXRvciBPdXRwdXRcIix1cmw6dCtcIi9cIityK1wiaXRlcmF0b3Jfb3V0cHV0LmpzXCIsdHlwZTpcImF1dG9tYXRpb25cIixpY29uOlwiYXJyb3dfcmlnaHRcIixwcml2YXRlOiEwfSx7ZGF0YV90eXBlOlwiU2VuZEVtYWlsXCIsbmFtZTpcIlNlbmQgZW1haWxcIix1cmw6dCtcIi9cIityK1wic2VuZF9lbWFpbC5qc1wiLHR5cGU6XCJhdXRvbWF0aW9uXCIsaWNvbjpcImVtYWlsXCJ9LHtkYXRhX3R5cGU6XCJGaWxlUmVhZGVyXCIsbmFtZTpcIkZpbGUgUmVhZGVyXCIsdXJsOnQrXCIvXCIrcitcImZpbGVfcmVhZGVyLmpzXCIsdHlwZTpcImF1dG9tYXRpb25cIixpY29uOlwiZmlsZVwifSx7ZGF0YV90eXBlOlwiV2Vic2l0ZXNDaGVja2VyXCIsbmFtZTpcIldlYnNpdGVzIENoZWNrZXJcIix1cmw6dCtcIi9cIityK1wid2Vic2l0ZXNfY2hlY2tlci5qc1wiLHR5cGU6XCJhdXRvbWF0aW9uXCIsaWNvbjpcIndvcmxkXCJ9LHtkYXRhX3R5cGU6XCJWb2ljZU1hY2hpbmVEZXRlY3Rpb25cIixuYW1lOlwiVm9pY2UgTWFjaGluZSBEZXRlY3Rpb25cIix1cmw6dCtcIi9cIityK1widm9pY2VfbWFjaGluZV9kZXRlY3Rpb24uanNcIix0eXBlOlwiYXV0b21hdGlvblwiLGljb246XCJhdXRvbWF0aW9uX2NhbGN1bGF0b3JcIn0se2RhdGFfdHlwZTpcIlRhc2tcIixuYW1lOlwiVGFza1wiLHVybDp0K1wiL1wiK3IrXCJ0YXNrLmpzXCIsdHlwZTpcImF1dG9tYXRpb25cIixpY29uOlwiYXV0b21hdGlvbl9jYWxjdWxhdG9yXCIscHJpdmF0ZTohMH0se2RhdGFfdHlwZTpcIkRlbGV0ZUl0ZW1zXCIsbmFtZTpcIkRlbGV0ZSBJdGVtc1wiLHVybDp0K1wiL1wiK3IrXCJkZWxldGVfaXRlbXMuanNcIix0eXBlOlwiYXV0b21hdGlvblwiLGljb246XCJydWJiaXNoXCJ9LHtkYXRhX3R5cGU6XCJHb1RvSXRlbVwiLG5hbWU6XCJHbyBUbyBJdGVtXCIsdXJsOnQrXCIvXCIrcitcImdvX3RvX2l0ZW0uanNcIix0eXBlOlwiYXV0b21hdGlvblwiLGljb246XCJjdXJzb3JfcG9pbnRcIn0se2RhdGFfdHlwZTpcIkZpcmVXb3Jrc1wiLG5hbWU6XCJGaXJlIFdvcmtzXCIsdXJsOnQrXCIvXCIrcitcImZpcmV3b3Jrc19ub2RlLmpzXCIsdHlwZTpcImF1dG9tYXRpb25cIixpY29uOlwid2VlZGluZ19wYXJ0eVwifSx7ZGF0YV90eXBlOlwiU2VuZE1lc3NhZ2VcIixuYW1lOlwiU2VuZCBNZXNzYWdlXCIsdXJsOnQrXCIvXCIrcitcInNlbmRfbWVzc2FnZS5qc1wiLHR5cGU6XCJhdXRvbWF0aW9uXCIsaWNvbjpcInNwZWVjaF9idWJibGVcIn0se2RhdGFfdHlwZTpcIlR1cmJvU01TXCIsbmFtZTpcIlR1cmJvIFNNU1wiLHVybDp0K1wiL1wiK3IrXCJ0dXJib19zbXMuanNcIix0eXBlOlwiYXV0b21hdGlvblwiLGljb246XCJlbWFpbFwifSx7ZGF0YV90eXBlOlwiSnNDb2RlXCIsbmFtZTpcIkpzIENvZGVcIix1cmw6dCtcIi9cIityK1wianNfY29kZS5qc1wiLHR5cGU6XCJhdXRvbWF0aW9uXCIsaWNvbjpcImNvZGVfZWRpdG9yXCJ9LHtkYXRhX3R5cGU6XCJBc2tDaGF0R1BUXCIsbmFtZTpcIkFzayBDaGF0R1BUXCIsdXJsOnQrXCIvXCIrcitcImFza19jaGF0X2dwdC5qc1wiLHR5cGU6XCJhdXRvbWF0aW9uXCIsaWNvbjpcImFza19jaGF0X2dwdFwifSx7ZGF0YV90eXBlOlwiVGVhY2hDaGF0R1BUXCIsbmFtZTpcIlRlYWNoIENoYXRHUFRcIix1cmw6dCtcIi9cIityK1widGVhY2hfY2hhdF9ncHQuanNcIix0eXBlOlwiYXV0b21hdGlvblwiLGljb246XCJ0ZWFjaF9jaGF0X2dwdFwifV19Y2xhc3MgJDM3ZmNjNjAwZjMwYjk0ZGUkZXhwb3J0JGJmMmExNWQzNGYzYzQ0MWN7Y29uc3RydWN0b3IoZSx0LHIpe3RoaXMuYXBwc19saXN0PVtdLHRoaXMudXNlcnNfbGlzdD1bXSx0aGlzLnVzZXI9e30sdGhpcy5tb2R1bGVzTGlzdD0kZGMwZjUxMDE3YWM4NTEyNSRleHBvcnQkMmUyYmNkODczOWFlMDM5KGUsdCxyKSx0aGlzLmdoQ29tcG9uZW50c1Byb21pc2VzPVtdfWdldE1haW5TdG9yYWdlKCl7cmV0dXJuIHRoaXN9Z2V0QXBwc0xpc3QoKXtyZXR1cm4gdGhpcy5hcHBzX2xpc3R9Z2V0VXNlcigpe3JldHVybiB0aGlzLnVzZXJ9Z2V0VXNlcnNMaXN0KCl7cmV0dXJuIHRoaXMudXNlcnNfbGlzdH1nZXRNb2R1bGVzTGlzdChlLHQscil7cmV0dXJuIHZvaWQgMD09PWU/dGhpcy5tb2R1bGVzTGlzdDohMT09dD90aGlzLm1vZHVsZXNMaXN0LmZpbHRlcih0PT50LmNyZWF0ZWRfZm9yP3QudHlwZT09PWUmJnQucHJpdmF0ZSYmdC5jcmVhdGVkX2Zvci5pbmNsdWRlcyhyKTp0LnR5cGU9PT1lJiYhdC5wcml2YXRlKTp0aGlzLm1vZHVsZXNMaXN0LmZpbHRlcih0PT50LnR5cGU9PT1lKX1nZXRNb2R1bGVVcmwoZSl7cmV0dXJuIHRoaXMubW9kdWxlc0xpc3QuZmluZCh0PT50LmRhdGFfdHlwZT09ZSl9c2V0VXNlcihlKXt0aGlzLnVzZXI9ZSx0aGlzLnVzZXJzX2xpc3QucHVzaChlKX11cGRhdGVVc2VyKGU9e30pe2UuYXZhdGFyXzEyOCYmKGUuYXZhdGFyXzEyOD1lLmF2YXRhcl8xMjgrXCI/XCIrbmV3IERhdGUoKS5nZXRUaW1lKCkpLGUuYXZhdGFyXzUxMiYmKGUuYXZhdGFyXzUxMj1lLmF2YXRhcl81MTIrXCI/XCIrbmV3IERhdGUoKS5nZXRUaW1lKCkpLHRoaXMudXNlcj17Li4udGhpcy51c2VyLC4uLmV9LHRoaXMudXNlcnNfbGlzdD10aGlzLnVzZXJzX2xpc3QuZmlsdGVyKHQ9PnQudXNlcl9pZCE9ZS51c2VyX2lkKSx0aGlzLnVzZXJzX2xpc3QucHVzaCh0aGlzLnVzZXIpfXVuc2V0VXNlcigpe3RoaXMudXNlcj17fX1nZXRBcHAoZSl7Zm9yKGxldCB0PTA7dDx0aGlzLmFwcHNfbGlzdC5sZW5ndGg7dCsrKWlmKHRoaXMuYXBwc19saXN0W3RdLmFwcF9pZD09ZSlyZXR1cm4gdGhpcy5hcHBzX2xpc3RbdF19dW5zZXRBcHBzKCl7dGhpcy5hcHBzX2xpc3Q9W119dXBkYXRlQXBwKGUpe3JldHVybiB0aGlzLmFwcHNfbGlzdD10aGlzLmFwcHNfbGlzdC5tYXAodD0+dC5hcHBfaWQ9PWUuYXBwX2lkP2U6dCksdGhpcy5hcHBzX2xpc3R9ZGVsZXRlQXBwKGUpe3JldHVybiB0aGlzLmFwcHNfbGlzdD10aGlzLmFwcHNfbGlzdC5maWx0ZXIodD0+dC5hcHBfaWQhPWUpLHRoaXMuYXBwc19saXN0fWFzeW5jIHVwZGF0ZUl0ZW1zSW5BcHAoZSx0KXtsZXQgcj1hd2FpdCB0aGlzLmdldEFwcCh0KTtyZXR1cm4gciYmKHIuaXRlbXNfbGlzdD11cGRhdGVJdGVtcyhlLHIuaXRlbXNfbGlzdCx0aGlzLnBpcGVTZXJ2aWNlLmVtaXQuYmluZCh0aGlzLnBpcGVTZXJ2aWNlKSx0KSx0aGlzLnVwZGF0ZUFwcChyKSkscn1hc3luYyBhZGRJdGVtc1RvQXBwKGUsdCl7bGV0IHI9YXdhaXQgdGhpcy5nZXRBcHAodCk7cmV0dXJuIHImJihyLml0ZW1zX2xpc3QucHVzaCguLi5lKSx0aGlzLnVwZGF0ZUFwcChyKSx0aGlzLnBpcGVTZXJ2aWNlLmVtaXQoXCJnaF9pdGVtc191cGRhdGVcIix7YXBwX2lkOnR9LGUpKSxyfWFzeW5jIGRlbGV0ZUl0ZW1zSW5BcHAoZSx0KXtsZXQgcj1hd2FpdCB0aGlzLmdldEFwcCh0KTtyZXR1cm4gciYmKHIuaXRlbXNfbGlzdD1yLml0ZW1zX2xpc3QuZmlsdGVyKHQ9PiFlLmZpbmQoZT0+ZS5pdGVtX2lkPT10Lml0ZW1faWQpKSx0aGlzLnVwZGF0ZUFwcChyKSkscn19dmFyICRmNjk4NDEzNmYyNzIyNmFmJGV4cG9ydHM9e307JGY2OTg0MTM2ZjI3MjI2YWYkZXhwb3J0cz1mdW5jdGlvbigpe3Rocm93IEVycm9yKFwid3MgZG9lcyBub3Qgd29yayBpbiB0aGUgYnJvd3Nlci4gQnJvd3NlciBjbGllbnRzIG11c3QgdXNlIHRoZSBuYXRpdmUgV2ViU29ja2V0IG9iamVjdFwiKX07dmFyICQ1eG96Qj1wYXJjZWxSZXF1aXJlKFwiNXhvekJcIik7Y2xhc3MgJDkxZWEzNTU0OWJlYzBiZDkkZXhwb3J0JDlhMmIwNjRjYTdlODY5ZmJ7Y29uc3RydWN0b3IoZSx0KXt0aGlzLndlYnNvY2tldD1udWxsLHRoaXMuY29ubmVjdGVkPSExLHRoaXMucXVldWU9W10sdGhpcy51cmw9ZSx0aGlzLmF1dGg9dCx0aGlzLmhlYXJ0QmVhdFRpbWVTdGVtcD0xZTEzLHRoaXMuQUxMT1dFRF9IRUFSVF9CRUFUX0RFTEVZPTEyZTMsdGhpcy5maXJzdEhlYXJ0QmVhdD0hMCx0aGlzLnJlbG9hZD0hMCx0aGlzLmlzQnJvd3Nlcj0kNXhvekIuSVNfQlJPV1NFUl9NQUlOX1RIUkVBRH1hc3luYyBhZGRTdWJzY3JpcHRpb24oZSl7bGV0IHQ9YXdhaXQgdGhpcy5hdXRoLmdldFRva2VuKCkscj1gdG9rZW49JHt0fS9+L2FwcF9pZD0ke2V9YDt0aGlzLmNvbm5lY3RlZCYmdGhpcy53ZWJzb2NrZXQuc2VuZChyKSx0aGlzLnF1ZXVlLnB1c2goZSl9YXN5bmMgb25PcGVuKCl7dGhpcy5yZWxvYWQ9ITAsY29uc29sZS5sb2coXCJ3ZWJzb2NrZXQgb3BlbmVkXCIpLHRoaXMuY29ubmVjdGVkPSEwO2xldCBlPWF3YWl0IHRoaXMuYXV0aC5nZXRUb2tlbigpO3RoaXMucXVldWUuZm9yRWFjaCh0PT57bGV0IHI9YHRva2VuPSR7ZX0vfi9hcHBfaWQ9JHt0fWA7dGhpcy53ZWJzb2NrZXQuc2VuZChyKX0pfW9uRXJyb3IoZSl7Y29uc29sZS5sb2coXCJ3ZWJzb2NrZXQgZXJyb3I6IFwiLGUpLHRoaXMud2Vic29ja2V0LmNsb3NlKCl9b25DbG9zZSgpe2NvbnNvbGUubG9nKFwid2Vic29ja2V0IGNsb3NlXCIpLHRoaXMuY29ubmVjdGVkPSExO3RyeXt0aGlzLmluaXRXZWJTb2NrZXQodGhpcy5vbk1hc3NhZ2VIYW5kbGVyLHRoaXMucmVmcmVzaEFwcHNIYW5kbGVyKX1jYXRjaChlKXtjb25zb2xlLmxvZyhlKX19YXN5bmMgb25NZXNzYWdlKGUpe2xldCB0PXRoaXMuaXNCcm93c2VyP2UuZGF0YTplO2lmKHQubWF0Y2goL0hlYXJ0QmVhdC8pKXtsZXQgZT1uZXcgRGF0ZSgpLmdldFRpbWUoKS10aGlzLmhlYXJ0QmVhdFRpbWVTdGVtcDt0aGlzLkFMTE9XRURfSEVBUlRfQkVBVF9ERUxFWTxlP2F3YWl0IHRoaXMub25Db25uZWN0aW9uTG9zdCgpOih0aGlzLndlYnNvY2tldC5zZW5kKFwiSGVhcnRCZWF0XCIpLHRoaXMuaGVhcnRCZWF0VGltZVN0ZW1wPW5ldyBEYXRlKCkuZ2V0VGltZSgpKX1pZih0aGlzLmZpcnN0SGVhcnRCZWF0JiYodGhpcy5jb25uZWN0aW9uQ2hlY2tlcigpLHRoaXMuZmlyc3RIZWFydEJlYXQ9ITEpLHQubWF0Y2goL1t7fV0vKSl7bGV0IGU9SlNPTi5wYXJzZSh0KSxyPWF3YWl0IHRoaXMuYXV0aC5nZXRUb2tlbigpO2UudG9rZW4hPXImJnRoaXMub25NYXNzYWdlSGFuZGxlcihlKX19aW5pdFdlYlNvY2tldChlLHQpe3RoaXMub25NYXNzYWdlSGFuZGxlcj1lLHRoaXMucmVmcmVzaEFwcHNIYW5kbGVyPXQsdGhpcy5pc0Jyb3dzZXI/KHRoaXMud2Vic29ja2V0PW5ldyBXZWJTb2NrZXQodGhpcy51cmwpLHRoaXMud2Vic29ja2V0Lm9ub3Blbj10aGlzLm9uT3Blbi5iaW5kKHRoaXMpLHRoaXMud2Vic29ja2V0Lm9uZXJyb3I9dGhpcy5vbkVycm9yLmJpbmQodGhpcyksdGhpcy53ZWJzb2NrZXQub25jbG9zZT10aGlzLm9uQ2xvc2UuYmluZCh0aGlzKSx0aGlzLndlYnNvY2tldC5vbm1lc3NhZ2U9dGhpcy5vbk1lc3NhZ2UuYmluZCh0aGlzKSk6KHRoaXMud2Vic29ja2V0PW5ldygkcGFyY2VsJGludGVyb3BEZWZhdWx0KCRmNjk4NDEzNmYyNzIyNmFmJGV4cG9ydHMpKSh0aGlzLnVybCksdGhpcy53ZWJzb2NrZXQub24oXCJvcGVuXCIsdGhpcy5vbk9wZW4pLHRoaXMud2Vic29ja2V0Lm9uKFwiZXJyb3JcIix0aGlzLm9uRXJyb3IpLHRoaXMud2Vic29ja2V0Lm9uKFwiY2xvc2VcIix0aGlzLm9uQ2xvc2UpLHRoaXMud2Vic29ja2V0Lm9uKFwibWVzc2FnZVwiLHRoaXMub25NZXNzYWdlKSksY29uc29sZS5sb2coXCJ3ZWJzb2NrZXQgaW5pdGlhbGl6ZWRcIil9Y29ubmVjdGlvbkNoZWNrZXIoKXtzZXRJbnRlcnZhbChhc3luYygpPT57bGV0IGU9bmV3IERhdGUoKS5nZXRUaW1lKCktdGhpcy5oZWFydEJlYXRUaW1lU3RlbXA7dGhpcy5BTExPV0VEX0hFQVJUX0JFQVRfREVMRVk8ZSYmYXdhaXQgdGhpcy5vbkNvbm5lY3Rpb25Mb3N0KCl9LDFlMyl9YXN5bmMgb25Db25uZWN0aW9uTG9zdCgpe3RyeXthd2FpdCB0aGlzLmF1dGguZ2V0VmVyc2lvbigpLHRoaXMucmVsb2FkJiYodGhpcy5yZWxvYWQ9ITEsY29uc29sZS5sb2coXCJDb25uZWN0ZWRcIiksdGhpcy5oZWFydEJlYXRUaW1lU3RlbXA9MWUxMyx0aGlzLndlYnNvY2tldC5jbG9zZSgpKX1jYXRjaChlKXtjb25zb2xlLmxvZyhlKX19fWFzeW5jIGZ1bmN0aW9uICRjZTA0Y2M0MTVlODYxMjAwJGV4cG9ydCQ0MGEyNTRiNTRkYzI4ZmNkKGUsdCxyLG49e30pe2xldCBpPVtdLGE9e3ZhcmlhYmxlTWV0aG9kY3VycmVudF9hcHA6KCk9PltuLmN1cnJlbnRfYXBwX2lkfHxuLmFwcF9pZF0sdmFyaWFibGVNZXRob2RlbGVtZW50X2FwcDooKT0+W24uZWxlbWVudF9hcHBfaWRdLHZhcmlhYmxlTWV0aG9kY3VycmVudF9pdGVtOigpPT5bYCR7bi5jdXJyZW50X2FwcF9pZHx8bi5hcHBfaWR9LiR7bi5pdGVtX2lkfWBdLHZhcmlhYmxlTWV0aG9kdXNlcl9pZDooKT0+W3QuZ2V0VXNlcigpLnVzZXJfaWRdLHZhcmlhYmxlTWV0aG9kdXNlcl9lbWFpbDplPT5bdC5nZXRVc2VyKCkudXNlcm5hbWVdLHZhcmlhYmxlTWV0aG9kdG9kYXkoZSl7bGV0IHQ9bmV3IERhdGUscj1uZXcgRGF0ZSh0LmdldEZ1bGxZZWFyKCksdC5nZXRNb250aCgpLHQuZ2V0RGF0ZSgpKSxuPW5ldyBEYXRlKHQuZ2V0RnVsbFllYXIoKSx0LmdldE1vbnRoKCksdC5nZXREYXRlKCkrMSk7cmV0dXJuW3IudmFsdWVPZigpLnRvU3RyaW5nKCkrXCI6XCIrbi52YWx1ZU9mKCkudG9TdHJpbmcoKV19LHZhcmlhYmxlTWV0aG9kdmFyaWFibGU6ZT0+W25bZV1dfTtpZihlKWZvcihsZXQgdCBvZiBlKWlmKHQpc3dpdGNoKHQuaW5wdXRfdHlwZSl7Y2FzZVwidmFyaWFibGVcIjpmb3IobGV0IGUgb2YodC52YWx1ZXNBcnJheT1bXSx0Py5pbnB1dF92YWx1ZS5zcGxpdChcIixcIikpKXtsZXQgcj1hW3QuaW5wdXRfdHlwZStcIk1ldGhvZFwiK2VdO1wiZnVuY3Rpb25cIj09dHlwZW9mIHI/dC52YWx1ZXNBcnJheT90LnZhbHVlc0FycmF5LnB1c2goLi4ucigpKTp0LnZhbHVlc0FycmF5PXIoKTp0LnZhbHVlc0FycmF5P3QudmFsdWVzQXJyYXkucHVzaCguLi5hLnZhcmlhYmxlTWV0aG9kdmFyaWFibGUoZSkpOnQudmFsdWVzQXJyYXk9YS52YXJpYWJsZU1ldGhvZHZhcmlhYmxlKGUpfWkucHVzaCh0KTticmVhaztjYXNlXCJmaWVsZFwiOmxldCBlPWF3YWl0IG8oe2FwcF9pZDpuLmN1cnJlbnRfYXBwX2lkfHxuLmFwcF9pZCxpdGVtX2lkOm4uaXRlbV9pZCxmaWVsZF9pZDp0LmlucHV0X3ZhbHVlfSk7bnVsbCE9ZSYmdC52YWx1ZXNBcnJheS5wdXNoKGUpLGkucHVzaCh0KTticmVhaztkZWZhdWx0OmkucHVzaCh0KX1lbHNlIGkucHVzaCh0KTtmdW5jdGlvbiBvKGUpe3JldHVybiBuZXcgUHJvbWlzZSh0PT57ci5vbihcImdoX3ZhbHVlX2dldFwiLGUsZnVuY3Rpb24gbihpLGEpe3IuZGVzdHJveShcImdoX3ZhbHVlX2dldFwiLGUsbiksdChhKX0pLmVtaXQoXCJnaF92YWx1ZV9nZXRcIix7fSxlKX0pfXJldHVybiBpfWZ1bmN0aW9uICQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRpc0FycmF5KGUpe3JldHVybiBBcnJheS5pc0FycmF5P0FycmF5LmlzQXJyYXkoZSk6XCJbb2JqZWN0IEFycmF5XVwiPT09JDQ5YzAwMjdjMTljODU5NmUkdmFyJGdldFRhZyhlKX1sZXQgJDQ5YzAwMjdjMTljODU5NmUkdmFyJElORklOSVRZPTEvMDtmdW5jdGlvbiAkNDljMDAyN2MxOWM4NTk2ZSR2YXIkYmFzZVRvU3RyaW5nKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBlO2xldCB0PWUrXCJcIjtyZXR1cm5cIjBcIj09dCYmMS9lPT0tJDQ5YzAwMjdjMTljODU5NmUkdmFyJElORklOSVRZP1wiLTBcIjp0fWZ1bmN0aW9uICQ0OWMwMDI3YzE5Yzg1OTZlJHZhciR0b1N0cmluZyhlKXtyZXR1cm4gbnVsbD09ZT9cIlwiOiQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRiYXNlVG9TdHJpbmcoZSl9ZnVuY3Rpb24gJDQ5YzAwMjdjMTljODU5NmUkdmFyJGlzU3RyaW5nKGUpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiBlfWZ1bmN0aW9uICQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRpc051bWJlcihlKXtyZXR1cm5cIm51bWJlclwiPT10eXBlb2YgZX1mdW5jdGlvbiAkNDljMDAyN2MxOWM4NTk2ZSR2YXIkaXNCb29sZWFuKGUpe3JldHVybiEwPT09ZXx8ITE9PT1lfHwkNDljMDAyN2MxOWM4NTk2ZSR2YXIkaXNPYmplY3RMaWtlKGUpJiZcIltvYmplY3QgQm9vbGVhbl1cIj09JDQ5YzAwMjdjMTljODU5NmUkdmFyJGdldFRhZyhlKX1mdW5jdGlvbiAkNDljMDAyN2MxOWM4NTk2ZSR2YXIkaXNPYmplY3QoZSl7cmV0dXJuXCJvYmplY3RcIj09dHlwZW9mIGV9ZnVuY3Rpb24gJDQ5YzAwMjdjMTljODU5NmUkdmFyJGlzT2JqZWN0TGlrZShlKXtyZXR1cm4gJDQ5YzAwMjdjMTljODU5NmUkdmFyJGlzT2JqZWN0KGUpJiZudWxsIT09ZX1mdW5jdGlvbiAkNDljMDAyN2MxOWM4NTk2ZSR2YXIkaXNEZWZpbmVkKGUpe3JldHVybiBudWxsIT1lfWZ1bmN0aW9uICQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRpc0JsYW5rKGUpe3JldHVybiFlLnRyaW0oKS5sZW5ndGh9ZnVuY3Rpb24gJDQ5YzAwMjdjMTljODU5NmUkdmFyJGdldFRhZyhlKXtyZXR1cm4gbnVsbD09ZT92b2lkIDA9PT1lP1wiW29iamVjdCBVbmRlZmluZWRdXCI6XCJbb2JqZWN0IE51bGxdXCI6T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpfWxldCAkNDljMDAyN2MxOWM4NTk2ZSR2YXIkRVhURU5ERURfU0VBUkNIX1VOQVZBSUxBQkxFPVwiRXh0ZW5kZWQgc2VhcmNoIGlzIG5vdCBhdmFpbGFibGVcIiwkNDljMDAyN2MxOWM4NTk2ZSR2YXIkSU5DT1JSRUNUX0lOREVYX1RZUEU9XCJJbmNvcnJlY3QgJ2luZGV4JyB0eXBlXCIsJDQ5YzAwMjdjMTljODU5NmUkdmFyJExPR0lDQUxfU0VBUkNIX0lOVkFMSURfUVVFUllfRk9SX0tFWT1lPT5gSW52YWxpZCB2YWx1ZSBmb3Iga2V5ICR7ZX1gLCQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRQQVRURVJOX0xFTkdUSF9UT09fTEFSR0U9ZT0+YFBhdHRlcm4gbGVuZ3RoIGV4Y2VlZHMgbWF4IG9mICR7ZX0uYCwkNDljMDAyN2MxOWM4NTk2ZSR2YXIkTUlTU0lOR19LRVlfUFJPUEVSVFk9ZT0+YE1pc3NpbmcgJHtlfSBwcm9wZXJ0eSBpbiBrZXlgLCQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRJTlZBTElEX0tFWV9XRUlHSFRfVkFMVUU9ZT0+YFByb3BlcnR5ICd3ZWlnaHQnIGluIGtleSAnJHtlfScgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXJgLCQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRoYXNPd249T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtjbGFzcyAkNDljMDAyN2MxOWM4NTk2ZSR2YXIkS2V5U3RvcmV7Y29uc3RydWN0b3IoZSl7dGhpcy5fa2V5cz1bXSx0aGlzLl9rZXlNYXA9e307bGV0IHQ9MDtlLmZvckVhY2goZT0+e2xldCByPSQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRjcmVhdGVLZXkoZSk7dCs9ci53ZWlnaHQsdGhpcy5fa2V5cy5wdXNoKHIpLHRoaXMuX2tleU1hcFtyLmlkXT1yLHQrPXIud2VpZ2h0fSksdGhpcy5fa2V5cy5mb3JFYWNoKGU9PntlLndlaWdodC89dH0pfWdldChlKXtyZXR1cm4gdGhpcy5fa2V5TWFwW2VdfWtleXMoKXtyZXR1cm4gdGhpcy5fa2V5c310b0pTT04oKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcy5fa2V5cyl9fWZ1bmN0aW9uICQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRjcmVhdGVLZXkoZSl7bGV0IHQ9bnVsbCxyPW51bGwsbj1udWxsLGk9MSxhPW51bGw7aWYoJDQ5YzAwMjdjMTljODU5NmUkdmFyJGlzU3RyaW5nKGUpfHwkNDljMDAyN2MxOWM4NTk2ZSR2YXIkaXNBcnJheShlKSluPWUsdD0kNDljMDAyN2MxOWM4NTk2ZSR2YXIkY3JlYXRlS2V5UGF0aChlKSxyPSQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRjcmVhdGVLZXlJZChlKTtlbHNle2lmKCEkNDljMDAyN2MxOWM4NTk2ZSR2YXIkaGFzT3duLmNhbGwoZSxcIm5hbWVcIikpdGhyb3cgRXJyb3IoJDQ5YzAwMjdjMTljODU5NmUkdmFyJE1JU1NJTkdfS0VZX1BST1BFUlRZKFwibmFtZVwiKSk7bGV0IG89ZS5uYW1lO2lmKG49bywkNDljMDAyN2MxOWM4NTk2ZSR2YXIkaGFzT3duLmNhbGwoZSxcIndlaWdodFwiKSYmKGk9ZS53ZWlnaHQpPD0wKXRocm93IEVycm9yKCQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRJTlZBTElEX0tFWV9XRUlHSFRfVkFMVUUobykpO3Q9JDQ5YzAwMjdjMTljODU5NmUkdmFyJGNyZWF0ZUtleVBhdGgobykscj0kNDljMDAyN2MxOWM4NTk2ZSR2YXIkY3JlYXRlS2V5SWQobyksYT1lLmdldEZufXJldHVybntwYXRoOnQsaWQ6cix3ZWlnaHQ6aSxzcmM6bixnZXRGbjphfX1mdW5jdGlvbiAkNDljMDAyN2MxOWM4NTk2ZSR2YXIkY3JlYXRlS2V5UGF0aChlKXtyZXR1cm4gJDQ5YzAwMjdjMTljODU5NmUkdmFyJGlzQXJyYXkoZSk/ZTplLnNwbGl0KFwiLlwiKX1mdW5jdGlvbiAkNDljMDAyN2MxOWM4NTk2ZSR2YXIkY3JlYXRlS2V5SWQoZSl7cmV0dXJuICQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRpc0FycmF5KGUpP2Uuam9pbihcIi5cIik6ZX1mdW5jdGlvbiAkNDljMDAyN2MxOWM4NTk2ZSR2YXIkZ2V0KGUsdCl7bGV0IHI9W10sbj0hMSxpPShlLHQsYSk9PntpZigkNDljMDAyN2MxOWM4NTk2ZSR2YXIkaXNEZWZpbmVkKGUpKXtpZih0W2FdKXtsZXQgbz1lW3RbYV1dO2lmKCQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRpc0RlZmluZWQobykpe2lmKGE9PT10Lmxlbmd0aC0xJiYoJDQ5YzAwMjdjMTljODU5NmUkdmFyJGlzU3RyaW5nKG8pfHwkNDljMDAyN2MxOWM4NTk2ZSR2YXIkaXNOdW1iZXIobyl8fCQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRpc0Jvb2xlYW4obykpKXIucHVzaCgkNDljMDAyN2MxOWM4NTk2ZSR2YXIkdG9TdHJpbmcobykpO2Vsc2UgaWYoJDQ5YzAwMjdjMTljODU5NmUkdmFyJGlzQXJyYXkobykpe249ITA7Zm9yKGxldCBlPTAscj1vLmxlbmd0aDtlPHI7ZSs9MSlpKG9bZV0sdCxhKzEpfWVsc2UgdC5sZW5ndGgmJmkobyx0LGErMSl9fWVsc2Ugci5wdXNoKGUpfX07cmV0dXJuIGkoZSwkNDljMDAyN2MxOWM4NTk2ZSR2YXIkaXNTdHJpbmcodCk/dC5zcGxpdChcIi5cIik6dCwwKSxuP3I6clswXX1sZXQgJDQ5YzAwMjdjMTljODU5NmUkdmFyJE1hdGNoT3B0aW9ucz17aW5jbHVkZU1hdGNoZXM6ITEsZmluZEFsbE1hdGNoZXM6ITEsbWluTWF0Y2hDaGFyTGVuZ3RoOjF9LCQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRCYXNpY09wdGlvbnM9e2lzQ2FzZVNlbnNpdGl2ZTohMSxpbmNsdWRlU2NvcmU6ITEsa2V5czpbXSxzaG91bGRTb3J0OiEwLHNvcnRGbjooZSx0KT0+ZS5zY29yZT09PXQuc2NvcmU/ZS5pZHg8dC5pZHg/LTE6MTplLnNjb3JlPHQuc2NvcmU/LTE6MX0sJDQ5YzAwMjdjMTljODU5NmUkdmFyJEZ1enp5T3B0aW9ucz17bG9jYXRpb246MCx0aHJlc2hvbGQ6LjYsZGlzdGFuY2U6MTAwfSwkNDljMDAyN2MxOWM4NTk2ZSR2YXIkQWR2YW5jZWRPcHRpb25zPXt1c2VFeHRlbmRlZFNlYXJjaDohMSxnZXRGbjokNDljMDAyN2MxOWM4NTk2ZSR2YXIkZ2V0LGlnbm9yZUxvY2F0aW9uOiExLGlnbm9yZUZpZWxkTm9ybTohMSxmaWVsZE5vcm1XZWlnaHQ6MX07dmFyICQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRDb25maWc9ey4uLiQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRCYXNpY09wdGlvbnMsLi4uJDQ5YzAwMjdjMTljODU5NmUkdmFyJE1hdGNoT3B0aW9ucywuLi4kNDljMDAyN2MxOWM4NTk2ZSR2YXIkRnV6enlPcHRpb25zLC4uLiQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRBZHZhbmNlZE9wdGlvbnN9O2xldCAkNDljMDAyN2MxOWM4NTk2ZSR2YXIkU1BBQ0U9L1teIF0rL2c7ZnVuY3Rpb24gJDQ5YzAwMjdjMTljODU5NmUkdmFyJG5vcm0oZT0xLHQ9Myl7bGV0IHI9bmV3IE1hcCxuPU1hdGgucG93KDEwLHQpO3JldHVybntnZXQodCl7bGV0IGk9dC5tYXRjaCgkNDljMDAyN2MxOWM4NTk2ZSR2YXIkU1BBQ0UpLmxlbmd0aDtpZihyLmhhcyhpKSlyZXR1cm4gci5nZXQoaSk7bGV0IGE9cGFyc2VGbG9hdChNYXRoLnJvdW5kKDEvTWF0aC5wb3coaSwuNSplKSpuKS9uKTtyZXR1cm4gci5zZXQoaSxhKSxhfSxjbGVhcigpe3IuY2xlYXIoKX19fWNsYXNzICQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRGdXNlSW5kZXh7Y29uc3RydWN0b3Ioe2dldEZuOmU9JDQ5YzAwMjdjMTljODU5NmUkdmFyJENvbmZpZy5nZXRGbixmaWVsZE5vcm1XZWlnaHQ6dD0kNDljMDAyN2MxOWM4NTk2ZSR2YXIkQ29uZmlnLmZpZWxkTm9ybVdlaWdodH09e30pe3RoaXMubm9ybT0kNDljMDAyN2MxOWM4NTk2ZSR2YXIkbm9ybSh0LDMpLHRoaXMuZ2V0Rm49ZSx0aGlzLmlzQ3JlYXRlZD0hMSx0aGlzLnNldEluZGV4UmVjb3JkcygpfXNldFNvdXJjZXMoZT1bXSl7dGhpcy5kb2NzPWV9c2V0SW5kZXhSZWNvcmRzKGU9W10pe3RoaXMucmVjb3Jkcz1lfXNldEtleXMoZT1bXSl7dGhpcy5rZXlzPWUsdGhpcy5fa2V5c01hcD17fSxlLmZvckVhY2goKGUsdCk9Pnt0aGlzLl9rZXlzTWFwW2UuaWRdPXR9KX1jcmVhdGUoKXshdGhpcy5pc0NyZWF0ZWQmJnRoaXMuZG9jcy5sZW5ndGgmJih0aGlzLmlzQ3JlYXRlZD0hMCwkNDljMDAyN2MxOWM4NTk2ZSR2YXIkaXNTdHJpbmcodGhpcy5kb2NzWzBdKT90aGlzLmRvY3MuZm9yRWFjaCgoZSx0KT0+e3RoaXMuX2FkZFN0cmluZyhlLHQpfSk6dGhpcy5kb2NzLmZvckVhY2goKGUsdCk9Pnt0aGlzLl9hZGRPYmplY3QoZSx0KX0pLHRoaXMubm9ybS5jbGVhcigpKX1hZGQoZSl7bGV0IHQ9dGhpcy5zaXplKCk7JDQ5YzAwMjdjMTljODU5NmUkdmFyJGlzU3RyaW5nKGUpP3RoaXMuX2FkZFN0cmluZyhlLHQpOnRoaXMuX2FkZE9iamVjdChlLHQpfXJlbW92ZUF0KGUpe3RoaXMucmVjb3Jkcy5zcGxpY2UoZSwxKTtmb3IobGV0IHQ9ZSxyPXRoaXMuc2l6ZSgpO3Q8cjt0Kz0xKXRoaXMucmVjb3Jkc1t0XS5pLT0xfWdldFZhbHVlRm9ySXRlbUF0S2V5SWQoZSx0KXtyZXR1cm4gZVt0aGlzLl9rZXlzTWFwW3RdXX1zaXplKCl7cmV0dXJuIHRoaXMucmVjb3Jkcy5sZW5ndGh9X2FkZFN0cmluZyhlLHQpe2lmKCEkNDljMDAyN2MxOWM4NTk2ZSR2YXIkaXNEZWZpbmVkKGUpfHwkNDljMDAyN2MxOWM4NTk2ZSR2YXIkaXNCbGFuayhlKSlyZXR1cm47bGV0IHI9e3Y6ZSxpOnQsbjp0aGlzLm5vcm0uZ2V0KGUpfTt0aGlzLnJlY29yZHMucHVzaChyKX1fYWRkT2JqZWN0KGUsdCl7bGV0IHI9e2k6dCwkOnt9fTt0aGlzLmtleXMuZm9yRWFjaCgodCxuKT0+e2xldCBpPXQuZ2V0Rm4/dC5nZXRGbihlKTp0aGlzLmdldEZuKGUsdC5wYXRoKTtpZigkNDljMDAyN2MxOWM4NTk2ZSR2YXIkaXNEZWZpbmVkKGkpKXtpZigkNDljMDAyN2MxOWM4NTk2ZSR2YXIkaXNBcnJheShpKSl7bGV0IGU9W10sdD1be25lc3RlZEFyckluZGV4Oi0xLHZhbHVlOml9XTtmb3IoO3QubGVuZ3RoOyl7bGV0e25lc3RlZEFyckluZGV4OnIsdmFsdWU6bn09dC5wb3AoKTtpZigkNDljMDAyN2MxOWM4NTk2ZSR2YXIkaXNEZWZpbmVkKG4pKXtpZigkNDljMDAyN2MxOWM4NTk2ZSR2YXIkaXNTdHJpbmcobikmJiEkNDljMDAyN2MxOWM4NTk2ZSR2YXIkaXNCbGFuayhuKSl7bGV0IHQ9e3Y6bixpOnIsbjp0aGlzLm5vcm0uZ2V0KG4pfTtlLnB1c2godCl9ZWxzZSAkNDljMDAyN2MxOWM4NTk2ZSR2YXIkaXNBcnJheShuKSYmbi5mb3JFYWNoKChlLHIpPT57dC5wdXNoKHtuZXN0ZWRBcnJJbmRleDpyLHZhbHVlOmV9KX0pfX1yLiRbbl09ZX1lbHNlIGlmKCQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRpc1N0cmluZyhpKSYmISQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRpc0JsYW5rKGkpKXtsZXQgZT17djppLG46dGhpcy5ub3JtLmdldChpKX07ci4kW25dPWV9fX0pLHRoaXMucmVjb3Jkcy5wdXNoKHIpfXRvSlNPTigpe3JldHVybntrZXlzOnRoaXMua2V5cyxyZWNvcmRzOnRoaXMucmVjb3Jkc319fWZ1bmN0aW9uICQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRjcmVhdGVJbmRleChlLHQse2dldEZuOnI9JDQ5YzAwMjdjMTljODU5NmUkdmFyJENvbmZpZy5nZXRGbixmaWVsZE5vcm1XZWlnaHQ6bj0kNDljMDAyN2MxOWM4NTk2ZSR2YXIkQ29uZmlnLmZpZWxkTm9ybVdlaWdodH09e30pe2xldCBpPW5ldyAkNDljMDAyN2MxOWM4NTk2ZSR2YXIkRnVzZUluZGV4KHtnZXRGbjpyLGZpZWxkTm9ybVdlaWdodDpufSk7cmV0dXJuIGkuc2V0S2V5cyhlLm1hcCgkNDljMDAyN2MxOWM4NTk2ZSR2YXIkY3JlYXRlS2V5KSksaS5zZXRTb3VyY2VzKHQpLGkuY3JlYXRlKCksaX1mdW5jdGlvbiAkNDljMDAyN2MxOWM4NTk2ZSR2YXIkcGFyc2VJbmRleChlLHtnZXRGbjp0PSQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRDb25maWcuZ2V0Rm4sZmllbGROb3JtV2VpZ2h0OnI9JDQ5YzAwMjdjMTljODU5NmUkdmFyJENvbmZpZy5maWVsZE5vcm1XZWlnaHR9PXt9KXtsZXR7a2V5czpuLHJlY29yZHM6aX09ZSxhPW5ldyAkNDljMDAyN2MxOWM4NTk2ZSR2YXIkRnVzZUluZGV4KHtnZXRGbjp0LGZpZWxkTm9ybVdlaWdodDpyfSk7cmV0dXJuIGEuc2V0S2V5cyhuKSxhLnNldEluZGV4UmVjb3JkcyhpKSxhfWZ1bmN0aW9uICQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRjb21wdXRlU2NvcmUkMShlLHtlcnJvcnM6dD0wLGN1cnJlbnRMb2NhdGlvbjpyPTAsZXhwZWN0ZWRMb2NhdGlvbjpuPTAsZGlzdGFuY2U6aT0kNDljMDAyN2MxOWM4NTk2ZSR2YXIkQ29uZmlnLmRpc3RhbmNlLGlnbm9yZUxvY2F0aW9uOmE9JDQ5YzAwMjdjMTljODU5NmUkdmFyJENvbmZpZy5pZ25vcmVMb2NhdGlvbn09e30pe2xldCBvPXQvZS5sZW5ndGg7aWYoYSlyZXR1cm4gbztsZXQgcz1NYXRoLmFicyhuLXIpO3JldHVybiBpP28rcy9pOnM/MTpvfWZ1bmN0aW9uICQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRjb252ZXJ0TWFza1RvSW5kaWNlcyhlPVtdLHQ9JDQ5YzAwMjdjMTljODU5NmUkdmFyJENvbmZpZy5taW5NYXRjaENoYXJMZW5ndGgpe2xldCByPVtdLG49LTEsaT0tMSxhPTA7Zm9yKGxldCBvPWUubGVuZ3RoO2E8bzthKz0xKXtsZXQgbz1lW2FdO28mJi0xPT09bj9uPWE6b3x8LTE9PT1ufHwoKGk9YS0xKS1uKzE+PXQmJnIucHVzaChbbixpXSksbj0tMSl9cmV0dXJuIGVbYS0xXSYmYS1uPj10JiZyLnB1c2goW24sYS0xXSkscn1sZXQgJDQ5YzAwMjdjMTljODU5NmUkdmFyJE1BWF9CSVRTPTMyO2Z1bmN0aW9uICQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRzZWFyY2goZSx0LHIse2xvY2F0aW9uOm49JDQ5YzAwMjdjMTljODU5NmUkdmFyJENvbmZpZy5sb2NhdGlvbixkaXN0YW5jZTppPSQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRDb25maWcuZGlzdGFuY2UsdGhyZXNob2xkOmE9JDQ5YzAwMjdjMTljODU5NmUkdmFyJENvbmZpZy50aHJlc2hvbGQsZmluZEFsbE1hdGNoZXM6bz0kNDljMDAyN2MxOWM4NTk2ZSR2YXIkQ29uZmlnLmZpbmRBbGxNYXRjaGVzLG1pbk1hdGNoQ2hhckxlbmd0aDpzPSQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRDb25maWcubWluTWF0Y2hDaGFyTGVuZ3RoLGluY2x1ZGVNYXRjaGVzOmw9JDQ5YzAwMjdjMTljODU5NmUkdmFyJENvbmZpZy5pbmNsdWRlTWF0Y2hlcyxpZ25vcmVMb2NhdGlvbjp1PSQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRDb25maWcuaWdub3JlTG9jYXRpb259PXt9KXtsZXQgYztpZih0Lmxlbmd0aD4kNDljMDAyN2MxOWM4NTk2ZSR2YXIkTUFYX0JJVFMpdGhyb3cgRXJyb3IoJDQ5YzAwMjdjMTljODU5NmUkdmFyJFBBVFRFUk5fTEVOR1RIX1RPT19MQVJHRSgkNDljMDAyN2MxOWM4NTk2ZSR2YXIkTUFYX0JJVFMpKTtsZXQgcD10Lmxlbmd0aCxkPWUubGVuZ3RoLGg9TWF0aC5tYXgoMCxNYXRoLm1pbihuLGQpKSxmPWEsbT1oLGc9cz4xfHxsLHk9Zz9BcnJheShkKTpbXTtmb3IoOyhjPWUuaW5kZXhPZih0LG0pKT4tMTspaWYoZj1NYXRoLm1pbigkNDljMDAyN2MxOWM4NTk2ZSR2YXIkY29tcHV0ZVNjb3JlJDEodCx7Y3VycmVudExvY2F0aW9uOmMsZXhwZWN0ZWRMb2NhdGlvbjpoLGRpc3RhbmNlOmksaWdub3JlTG9jYXRpb246dX0pLGYpLG09YytwLGcpe2xldCBlPTA7Zm9yKDtlPHA7KXlbYytlXT0xLGUrPTF9bT0tMTtsZXQgXz1bXSx2PTEsYj1wK2Qsdz0xPDxwLTE7Zm9yKGxldCBuPTA7bjxwO24rPTEpe2xldCBhPTAscz1iO2Zvcig7YTxzOykkNDljMDAyN2MxOWM4NTk2ZSR2YXIkY29tcHV0ZVNjb3JlJDEodCx7ZXJyb3JzOm4sY3VycmVudExvY2F0aW9uOmgrcyxleHBlY3RlZExvY2F0aW9uOmgsZGlzdGFuY2U6aSxpZ25vcmVMb2NhdGlvbjp1fSk8PWY/YT1zOmI9cyxzPU1hdGguZmxvb3IoKGItYSkvMithKTtiPXM7bGV0IGw9TWF0aC5tYXgoMSxoLXMrMSksYz1vP2Q6TWF0aC5taW4oaCtzLGQpK3AsUz1BcnJheShjKzIpO1NbYysxXT0oMTw8biktMTtmb3IobGV0IGE9YzthPj1sO2EtPTEpe2xldCBvPWEtMSxzPXJbZS5jaGFyQXQobyldO2lmKGcmJih5W29dPSshIXMpLFNbYV09KFNbYSsxXTw8MXwxKSZzLG4mJihTW2FdfD0oX1thKzFdfF9bYV0pPDwxfDF8X1thKzFdKSxTW2FdJncmJih2PSQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRjb21wdXRlU2NvcmUkMSh0LHtlcnJvcnM6bixjdXJyZW50TG9jYXRpb246byxleHBlY3RlZExvY2F0aW9uOmgsZGlzdGFuY2U6aSxpZ25vcmVMb2NhdGlvbjp1fSkpPD1mKXtpZihmPXYsKG09byk8PWgpYnJlYWs7bD1NYXRoLm1heCgxLDIqaC1tKX19aWYoJDQ5YzAwMjdjMTljODU5NmUkdmFyJGNvbXB1dGVTY29yZSQxKHQse2Vycm9yczpuKzEsY3VycmVudExvY2F0aW9uOmgsZXhwZWN0ZWRMb2NhdGlvbjpoLGRpc3RhbmNlOmksaWdub3JlTG9jYXRpb246dX0pPmYpYnJlYWs7Xz1TfWxldCBTPXtpc01hdGNoOm0+PTAsc2NvcmU6TWF0aC5tYXgoLjAwMSx2KX07aWYoZyl7bGV0IGU9JDQ5YzAwMjdjMTljODU5NmUkdmFyJGNvbnZlcnRNYXNrVG9JbmRpY2VzKHkscyk7ZS5sZW5ndGg/bCYmKFMuaW5kaWNlcz1lKTpTLmlzTWF0Y2g9ITF9cmV0dXJuIFN9ZnVuY3Rpb24gJDQ5YzAwMjdjMTljODU5NmUkdmFyJGNyZWF0ZVBhdHRlcm5BbHBoYWJldChlKXtsZXQgdD17fTtmb3IobGV0IHI9MCxuPWUubGVuZ3RoO3I8bjtyKz0xKXtsZXQgaT1lLmNoYXJBdChyKTt0W2ldPSh0W2ldfHwwKXwxPDxuLXItMX1yZXR1cm4gdH1jbGFzcyAkNDljMDAyN2MxOWM4NTk2ZSR2YXIkQml0YXBTZWFyY2h7Y29uc3RydWN0b3IoZSx7bG9jYXRpb246dD0kNDljMDAyN2MxOWM4NTk2ZSR2YXIkQ29uZmlnLmxvY2F0aW9uLHRocmVzaG9sZDpyPSQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRDb25maWcudGhyZXNob2xkLGRpc3RhbmNlOm49JDQ5YzAwMjdjMTljODU5NmUkdmFyJENvbmZpZy5kaXN0YW5jZSxpbmNsdWRlTWF0Y2hlczppPSQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRDb25maWcuaW5jbHVkZU1hdGNoZXMsZmluZEFsbE1hdGNoZXM6YT0kNDljMDAyN2MxOWM4NTk2ZSR2YXIkQ29uZmlnLmZpbmRBbGxNYXRjaGVzLG1pbk1hdGNoQ2hhckxlbmd0aDpvPSQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRDb25maWcubWluTWF0Y2hDaGFyTGVuZ3RoLGlzQ2FzZVNlbnNpdGl2ZTpzPSQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRDb25maWcuaXNDYXNlU2Vuc2l0aXZlLGlnbm9yZUxvY2F0aW9uOmw9JDQ5YzAwMjdjMTljODU5NmUkdmFyJENvbmZpZy5pZ25vcmVMb2NhdGlvbn09e30pe2lmKHRoaXMub3B0aW9ucz17bG9jYXRpb246dCx0aHJlc2hvbGQ6cixkaXN0YW5jZTpuLGluY2x1ZGVNYXRjaGVzOmksZmluZEFsbE1hdGNoZXM6YSxtaW5NYXRjaENoYXJMZW5ndGg6byxpc0Nhc2VTZW5zaXRpdmU6cyxpZ25vcmVMb2NhdGlvbjpsfSx0aGlzLnBhdHRlcm49cz9lOmUudG9Mb3dlckNhc2UoKSx0aGlzLmNodW5rcz1bXSwhdGhpcy5wYXR0ZXJuLmxlbmd0aClyZXR1cm47bGV0IHU9KGUsdCk9Pnt0aGlzLmNodW5rcy5wdXNoKHtwYXR0ZXJuOmUsYWxwaGFiZXQ6JDQ5YzAwMjdjMTljODU5NmUkdmFyJGNyZWF0ZVBhdHRlcm5BbHBoYWJldChlKSxzdGFydEluZGV4OnR9KX0sYz10aGlzLnBhdHRlcm4ubGVuZ3RoO2lmKGM+JDQ5YzAwMjdjMTljODU5NmUkdmFyJE1BWF9CSVRTKXtsZXQgZT0wLHQ9YyUkNDljMDAyN2MxOWM4NTk2ZSR2YXIkTUFYX0JJVFMscj1jLXQ7Zm9yKDtlPHI7KXUodGhpcy5wYXR0ZXJuLnN1YnN0cihlLCQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRNQVhfQklUUyksZSksZSs9JDQ5YzAwMjdjMTljODU5NmUkdmFyJE1BWF9CSVRTO2lmKHQpe2xldCBlPWMtJDQ5YzAwMjdjMTljODU5NmUkdmFyJE1BWF9CSVRTO3UodGhpcy5wYXR0ZXJuLnN1YnN0cihlKSxlKX19ZWxzZSB1KHRoaXMucGF0dGVybiwwKX1zZWFyY2hJbihlKXtsZXR7aXNDYXNlU2Vuc2l0aXZlOnQsaW5jbHVkZU1hdGNoZXM6cn09dGhpcy5vcHRpb25zO2lmKHR8fChlPWUudG9Mb3dlckNhc2UoKSksdGhpcy5wYXR0ZXJuPT09ZSl7bGV0IHQ9e2lzTWF0Y2g6ITAsc2NvcmU6MH07cmV0dXJuIHImJih0LmluZGljZXM9W1swLGUubGVuZ3RoLTFdXSksdH1sZXR7bG9jYXRpb246bixkaXN0YW5jZTppLHRocmVzaG9sZDphLGZpbmRBbGxNYXRjaGVzOm8sbWluTWF0Y2hDaGFyTGVuZ3RoOnMsaWdub3JlTG9jYXRpb246bH09dGhpcy5vcHRpb25zLHU9W10sYz0wLHA9ITE7dGhpcy5jaHVua3MuZm9yRWFjaCgoe3BhdHRlcm46dCxhbHBoYWJldDpkLHN0YXJ0SW5kZXg6aH0pPT57bGV0e2lzTWF0Y2g6ZixzY29yZTptLGluZGljZXM6Z309JDQ5YzAwMjdjMTljODU5NmUkdmFyJHNlYXJjaChlLHQsZCx7bG9jYXRpb246bitoLGRpc3RhbmNlOmksdGhyZXNob2xkOmEsZmluZEFsbE1hdGNoZXM6byxtaW5NYXRjaENoYXJMZW5ndGg6cyxpbmNsdWRlTWF0Y2hlczpyLGlnbm9yZUxvY2F0aW9uOmx9KTtmJiYocD0hMCksYys9bSxmJiZnJiYodT1bLi4udSwuLi5nXSl9KTtsZXQgZD17aXNNYXRjaDpwLHNjb3JlOnA/Yy90aGlzLmNodW5rcy5sZW5ndGg6MX07cmV0dXJuIHAmJnImJihkLmluZGljZXM9dSksZH19Y2xhc3MgJDQ5YzAwMjdjMTljODU5NmUkdmFyJEJhc2VNYXRjaHtjb25zdHJ1Y3RvcihlKXt0aGlzLnBhdHRlcm49ZX1zdGF0aWMgaXNNdWx0aU1hdGNoKGUpe3JldHVybiAkNDljMDAyN2MxOWM4NTk2ZSR2YXIkZ2V0TWF0Y2goZSx0aGlzLm11bHRpUmVnZXgpfXN0YXRpYyBpc1NpbmdsZU1hdGNoKGUpe3JldHVybiAkNDljMDAyN2MxOWM4NTk2ZSR2YXIkZ2V0TWF0Y2goZSx0aGlzLnNpbmdsZVJlZ2V4KX1zZWFyY2goKXt9fWZ1bmN0aW9uICQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRnZXRNYXRjaChlLHQpe2xldCByPWUubWF0Y2godCk7cmV0dXJuIHI/clsxXTpudWxsfWNsYXNzICQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRFeGFjdE1hdGNoIGV4dGVuZHMgJDQ5YzAwMjdjMTljODU5NmUkdmFyJEJhc2VNYXRjaHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlKX1zdGF0aWMgZ2V0IHR5cGUoKXtyZXR1cm5cImV4YWN0XCJ9c3RhdGljIGdldCBtdWx0aVJlZ2V4KCl7cmV0dXJuL149XCIoLiopXCIkL31zdGF0aWMgZ2V0IHNpbmdsZVJlZ2V4KCl7cmV0dXJuL149KC4qKSQvfXNlYXJjaChlKXtsZXQgdD1lPT09dGhpcy5wYXR0ZXJuO3JldHVybntpc01hdGNoOnQsc2NvcmU6KyF0LGluZGljZXM6WzAsdGhpcy5wYXR0ZXJuLmxlbmd0aC0xXX19fWNsYXNzICQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRJbnZlcnNlRXhhY3RNYXRjaCBleHRlbmRzICQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRCYXNlTWF0Y2h7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSl9c3RhdGljIGdldCB0eXBlKCl7cmV0dXJuXCJpbnZlcnNlLWV4YWN0XCJ9c3RhdGljIGdldCBtdWx0aVJlZ2V4KCl7cmV0dXJuL14hXCIoLiopXCIkL31zdGF0aWMgZ2V0IHNpbmdsZVJlZ2V4KCl7cmV0dXJuL14hKC4qKSQvfXNlYXJjaChlKXtsZXQgdD0tMT09PWUuaW5kZXhPZih0aGlzLnBhdHRlcm4pO3JldHVybntpc01hdGNoOnQsc2NvcmU6KyF0LGluZGljZXM6WzAsZS5sZW5ndGgtMV19fX1jbGFzcyAkNDljMDAyN2MxOWM4NTk2ZSR2YXIkUHJlZml4RXhhY3RNYXRjaCBleHRlbmRzICQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRCYXNlTWF0Y2h7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSl9c3RhdGljIGdldCB0eXBlKCl7cmV0dXJuXCJwcmVmaXgtZXhhY3RcIn1zdGF0aWMgZ2V0IG11bHRpUmVnZXgoKXtyZXR1cm4vXlxcXlwiKC4qKVwiJC99c3RhdGljIGdldCBzaW5nbGVSZWdleCgpe3JldHVybi9eXFxeKC4qKSQvfXNlYXJjaChlKXtsZXQgdD1lLnN0YXJ0c1dpdGgodGhpcy5wYXR0ZXJuKTtyZXR1cm57aXNNYXRjaDp0LHNjb3JlOishdCxpbmRpY2VzOlswLHRoaXMucGF0dGVybi5sZW5ndGgtMV19fX1jbGFzcyAkNDljMDAyN2MxOWM4NTk2ZSR2YXIkSW52ZXJzZVByZWZpeEV4YWN0TWF0Y2ggZXh0ZW5kcyAkNDljMDAyN2MxOWM4NTk2ZSR2YXIkQmFzZU1hdGNoe2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpfXN0YXRpYyBnZXQgdHlwZSgpe3JldHVyblwiaW52ZXJzZS1wcmVmaXgtZXhhY3RcIn1zdGF0aWMgZ2V0IG11bHRpUmVnZXgoKXtyZXR1cm4vXiFcXF5cIiguKilcIiQvfXN0YXRpYyBnZXQgc2luZ2xlUmVnZXgoKXtyZXR1cm4vXiFcXF4oLiopJC99c2VhcmNoKGUpe2xldCB0PSFlLnN0YXJ0c1dpdGgodGhpcy5wYXR0ZXJuKTtyZXR1cm57aXNNYXRjaDp0LHNjb3JlOishdCxpbmRpY2VzOlswLGUubGVuZ3RoLTFdfX19Y2xhc3MgJDQ5YzAwMjdjMTljODU5NmUkdmFyJFN1ZmZpeEV4YWN0TWF0Y2ggZXh0ZW5kcyAkNDljMDAyN2MxOWM4NTk2ZSR2YXIkQmFzZU1hdGNoe2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpfXN0YXRpYyBnZXQgdHlwZSgpe3JldHVyblwic3VmZml4LWV4YWN0XCJ9c3RhdGljIGdldCBtdWx0aVJlZ2V4KCl7cmV0dXJuL15cIiguKilcIlxcJCQvfXN0YXRpYyBnZXQgc2luZ2xlUmVnZXgoKXtyZXR1cm4vXiguKilcXCQkL31zZWFyY2goZSl7bGV0IHQ9ZS5lbmRzV2l0aCh0aGlzLnBhdHRlcm4pO3JldHVybntpc01hdGNoOnQsc2NvcmU6KyF0LGluZGljZXM6W2UubGVuZ3RoLXRoaXMucGF0dGVybi5sZW5ndGgsZS5sZW5ndGgtMV19fX1jbGFzcyAkNDljMDAyN2MxOWM4NTk2ZSR2YXIkSW52ZXJzZVN1ZmZpeEV4YWN0TWF0Y2ggZXh0ZW5kcyAkNDljMDAyN2MxOWM4NTk2ZSR2YXIkQmFzZU1hdGNoe2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpfXN0YXRpYyBnZXQgdHlwZSgpe3JldHVyblwiaW52ZXJzZS1zdWZmaXgtZXhhY3RcIn1zdGF0aWMgZ2V0IG11bHRpUmVnZXgoKXtyZXR1cm4vXiFcIiguKilcIlxcJCQvfXN0YXRpYyBnZXQgc2luZ2xlUmVnZXgoKXtyZXR1cm4vXiEoLiopXFwkJC99c2VhcmNoKGUpe2xldCB0PSFlLmVuZHNXaXRoKHRoaXMucGF0dGVybik7cmV0dXJue2lzTWF0Y2g6dCxzY29yZTorIXQsaW5kaWNlczpbMCxlLmxlbmd0aC0xXX19fWNsYXNzICQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRGdXp6eU1hdGNoIGV4dGVuZHMgJDQ5YzAwMjdjMTljODU5NmUkdmFyJEJhc2VNYXRjaHtjb25zdHJ1Y3RvcihlLHtsb2NhdGlvbjp0PSQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRDb25maWcubG9jYXRpb24sdGhyZXNob2xkOnI9JDQ5YzAwMjdjMTljODU5NmUkdmFyJENvbmZpZy50aHJlc2hvbGQsZGlzdGFuY2U6bj0kNDljMDAyN2MxOWM4NTk2ZSR2YXIkQ29uZmlnLmRpc3RhbmNlLGluY2x1ZGVNYXRjaGVzOmk9JDQ5YzAwMjdjMTljODU5NmUkdmFyJENvbmZpZy5pbmNsdWRlTWF0Y2hlcyxmaW5kQWxsTWF0Y2hlczphPSQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRDb25maWcuZmluZEFsbE1hdGNoZXMsbWluTWF0Y2hDaGFyTGVuZ3RoOm89JDQ5YzAwMjdjMTljODU5NmUkdmFyJENvbmZpZy5taW5NYXRjaENoYXJMZW5ndGgsaXNDYXNlU2Vuc2l0aXZlOnM9JDQ5YzAwMjdjMTljODU5NmUkdmFyJENvbmZpZy5pc0Nhc2VTZW5zaXRpdmUsaWdub3JlTG9jYXRpb246bD0kNDljMDAyN2MxOWM4NTk2ZSR2YXIkQ29uZmlnLmlnbm9yZUxvY2F0aW9ufT17fSl7c3VwZXIoZSksdGhpcy5fYml0YXBTZWFyY2g9bmV3ICQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRCaXRhcFNlYXJjaChlLHtsb2NhdGlvbjp0LHRocmVzaG9sZDpyLGRpc3RhbmNlOm4saW5jbHVkZU1hdGNoZXM6aSxmaW5kQWxsTWF0Y2hlczphLG1pbk1hdGNoQ2hhckxlbmd0aDpvLGlzQ2FzZVNlbnNpdGl2ZTpzLGlnbm9yZUxvY2F0aW9uOmx9KX1zdGF0aWMgZ2V0IHR5cGUoKXtyZXR1cm5cImZ1enp5XCJ9c3RhdGljIGdldCBtdWx0aVJlZ2V4KCl7cmV0dXJuL15cIiguKilcIiQvfXN0YXRpYyBnZXQgc2luZ2xlUmVnZXgoKXtyZXR1cm4vXiguKikkL31zZWFyY2goZSl7cmV0dXJuIHRoaXMuX2JpdGFwU2VhcmNoLnNlYXJjaEluKGUpfX1jbGFzcyAkNDljMDAyN2MxOWM4NTk2ZSR2YXIkSW5jbHVkZU1hdGNoIGV4dGVuZHMgJDQ5YzAwMjdjMTljODU5NmUkdmFyJEJhc2VNYXRjaHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlKX1zdGF0aWMgZ2V0IHR5cGUoKXtyZXR1cm5cImluY2x1ZGVcIn1zdGF0aWMgZ2V0IG11bHRpUmVnZXgoKXtyZXR1cm4vXidcIiguKilcIiQvfXN0YXRpYyBnZXQgc2luZ2xlUmVnZXgoKXtyZXR1cm4vXicoLiopJC99c2VhcmNoKGUpe2xldCB0LHI9MCxuPVtdLGk9dGhpcy5wYXR0ZXJuLmxlbmd0aDtmb3IoOyh0PWUuaW5kZXhPZih0aGlzLnBhdHRlcm4scikpPi0xOylyPXQraSxuLnB1c2goW3Qsci0xXSk7bGV0IGE9ISFuLmxlbmd0aDtyZXR1cm57aXNNYXRjaDphLHNjb3JlOishYSxpbmRpY2VzOm59fX1sZXQgJDQ5YzAwMjdjMTljODU5NmUkdmFyJHNlYXJjaGVycz1bJDQ5YzAwMjdjMTljODU5NmUkdmFyJEV4YWN0TWF0Y2gsJDQ5YzAwMjdjMTljODU5NmUkdmFyJEluY2x1ZGVNYXRjaCwkNDljMDAyN2MxOWM4NTk2ZSR2YXIkUHJlZml4RXhhY3RNYXRjaCwkNDljMDAyN2MxOWM4NTk2ZSR2YXIkSW52ZXJzZVByZWZpeEV4YWN0TWF0Y2gsJDQ5YzAwMjdjMTljODU5NmUkdmFyJEludmVyc2VTdWZmaXhFeGFjdE1hdGNoLCQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRTdWZmaXhFeGFjdE1hdGNoLCQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRJbnZlcnNlRXhhY3RNYXRjaCwkNDljMDAyN2MxOWM4NTk2ZSR2YXIkRnV6enlNYXRjaF0sJDQ5YzAwMjdjMTljODU5NmUkdmFyJHNlYXJjaGVyc0xlbj0kNDljMDAyN2MxOWM4NTk2ZSR2YXIkc2VhcmNoZXJzLmxlbmd0aCwkNDljMDAyN2MxOWM4NTk2ZSR2YXIkU1BBQ0VfUkU9LyArKD89KD86W15cXFwiXSpcXFwiW15cXFwiXSpcXFwiKSpbXlxcXCJdKiQpLywkNDljMDAyN2MxOWM4NTk2ZSR2YXIkT1JfVE9LRU49XCJ8XCI7ZnVuY3Rpb24gJDQ5YzAwMjdjMTljODU5NmUkdmFyJHBhcnNlUXVlcnkoZSx0PXt9KXtyZXR1cm4gZS5zcGxpdCgkNDljMDAyN2MxOWM4NTk2ZSR2YXIkT1JfVE9LRU4pLm1hcChlPT57bGV0IHI9ZS50cmltKCkuc3BsaXQoJDQ5YzAwMjdjMTljODU5NmUkdmFyJFNQQUNFX1JFKS5maWx0ZXIoZT0+ZSYmISFlLnRyaW0oKSksbj1bXTtmb3IobGV0IGU9MCxpPXIubGVuZ3RoO2U8aTtlKz0xKXtsZXQgaT1yW2VdLGE9ITEsbz0tMTtmb3IoOyFhJiYrK288JDQ5YzAwMjdjMTljODU5NmUkdmFyJHNlYXJjaGVyc0xlbjspe2xldCBlPSQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRzZWFyY2hlcnNbb10scj1lLmlzTXVsdGlNYXRjaChpKTtyJiYobi5wdXNoKG5ldyBlKHIsdCkpLGE9ITApfWlmKCFhKWZvcihvPS0xOysrbzwkNDljMDAyN2MxOWM4NTk2ZSR2YXIkc2VhcmNoZXJzTGVuOyl7bGV0IGU9JDQ5YzAwMjdjMTljODU5NmUkdmFyJHNlYXJjaGVyc1tvXSxyPWUuaXNTaW5nbGVNYXRjaChpKTtpZihyKXtuLnB1c2gobmV3IGUocix0KSk7YnJlYWt9fX1yZXR1cm4gbn0pfWxldCAkNDljMDAyN2MxOWM4NTk2ZSR2YXIkTXVsdGlNYXRjaFNldD1uZXcgU2V0KFskNDljMDAyN2MxOWM4NTk2ZSR2YXIkRnV6enlNYXRjaC50eXBlLCQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRJbmNsdWRlTWF0Y2gudHlwZV0pO2NsYXNzICQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRFeHRlbmRlZFNlYXJjaHtjb25zdHJ1Y3RvcihlLHtpc0Nhc2VTZW5zaXRpdmU6dD0kNDljMDAyN2MxOWM4NTk2ZSR2YXIkQ29uZmlnLmlzQ2FzZVNlbnNpdGl2ZSxpbmNsdWRlTWF0Y2hlczpyPSQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRDb25maWcuaW5jbHVkZU1hdGNoZXMsbWluTWF0Y2hDaGFyTGVuZ3RoOm49JDQ5YzAwMjdjMTljODU5NmUkdmFyJENvbmZpZy5taW5NYXRjaENoYXJMZW5ndGgsaWdub3JlTG9jYXRpb246aT0kNDljMDAyN2MxOWM4NTk2ZSR2YXIkQ29uZmlnLmlnbm9yZUxvY2F0aW9uLGZpbmRBbGxNYXRjaGVzOmE9JDQ5YzAwMjdjMTljODU5NmUkdmFyJENvbmZpZy5maW5kQWxsTWF0Y2hlcyxsb2NhdGlvbjpvPSQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRDb25maWcubG9jYXRpb24sdGhyZXNob2xkOnM9JDQ5YzAwMjdjMTljODU5NmUkdmFyJENvbmZpZy50aHJlc2hvbGQsZGlzdGFuY2U6bD0kNDljMDAyN2MxOWM4NTk2ZSR2YXIkQ29uZmlnLmRpc3RhbmNlfT17fSl7dGhpcy5xdWVyeT1udWxsLHRoaXMub3B0aW9ucz17aXNDYXNlU2Vuc2l0aXZlOnQsaW5jbHVkZU1hdGNoZXM6cixtaW5NYXRjaENoYXJMZW5ndGg6bixmaW5kQWxsTWF0Y2hlczphLGlnbm9yZUxvY2F0aW9uOmksbG9jYXRpb246byx0aHJlc2hvbGQ6cyxkaXN0YW5jZTpsfSx0aGlzLnBhdHRlcm49dD9lOmUudG9Mb3dlckNhc2UoKSx0aGlzLnF1ZXJ5PSQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRwYXJzZVF1ZXJ5KHRoaXMucGF0dGVybix0aGlzLm9wdGlvbnMpfXN0YXRpYyBjb25kaXRpb24oZSx0KXtyZXR1cm4gdC51c2VFeHRlbmRlZFNlYXJjaH1zZWFyY2hJbihlKXtsZXQgdD10aGlzLnF1ZXJ5O2lmKCF0KXJldHVybntpc01hdGNoOiExLHNjb3JlOjF9O2xldHtpbmNsdWRlTWF0Y2hlczpyLGlzQ2FzZVNlbnNpdGl2ZTpufT10aGlzLm9wdGlvbnM7ZT1uP2U6ZS50b0xvd2VyQ2FzZSgpO2xldCBpPTAsYT1bXSxvPTA7Zm9yKGxldCBuPTAscz10Lmxlbmd0aDtuPHM7bis9MSl7bGV0IHM9dFtuXTthLmxlbmd0aD0wLGk9MDtmb3IobGV0IHQ9MCxuPXMubGVuZ3RoO3Q8bjt0Kz0xKXtsZXQgbj1zW3RdLHtpc01hdGNoOmwsaW5kaWNlczp1LHNjb3JlOmN9PW4uc2VhcmNoKGUpO2lmKGwpe2lmKGkrPTEsbys9YyxyKXtsZXQgZT1uLmNvbnN0cnVjdG9yLnR5cGU7JDQ5YzAwMjdjMTljODU5NmUkdmFyJE11bHRpTWF0Y2hTZXQuaGFzKGUpP2E9Wy4uLmEsLi4udV06YS5wdXNoKHUpfX1lbHNle289MCxpPTAsYS5sZW5ndGg9MDticmVha319aWYoaSl7bGV0IGU9e2lzTWF0Y2g6ITAsc2NvcmU6by9pfTtyZXR1cm4gciYmKGUuaW5kaWNlcz1hKSxlfX1yZXR1cm57aXNNYXRjaDohMSxzY29yZToxfX19bGV0ICQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRyZWdpc3RlcmVkU2VhcmNoZXJzPVtdO2Z1bmN0aW9uICQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRyZWdpc3RlciguLi5lKXskNDljMDAyN2MxOWM4NTk2ZSR2YXIkcmVnaXN0ZXJlZFNlYXJjaGVycy5wdXNoKC4uLmUpfWZ1bmN0aW9uICQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRjcmVhdGVTZWFyY2hlcihlLHQpe2ZvcihsZXQgcj0wLG49JDQ5YzAwMjdjMTljODU5NmUkdmFyJHJlZ2lzdGVyZWRTZWFyY2hlcnMubGVuZ3RoO3I8bjtyKz0xKXtsZXQgbj0kNDljMDAyN2MxOWM4NTk2ZSR2YXIkcmVnaXN0ZXJlZFNlYXJjaGVyc1tyXTtpZihuLmNvbmRpdGlvbihlLHQpKXJldHVybiBuZXcgbihlLHQpfXJldHVybiBuZXcgJDQ5YzAwMjdjMTljODU5NmUkdmFyJEJpdGFwU2VhcmNoKGUsdCl9bGV0ICQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRMb2dpY2FsT3BlcmF0b3I9e0FORDpcIiRhbmRcIixPUjpcIiRvclwifSwkNDljMDAyN2MxOWM4NTk2ZSR2YXIkS2V5VHlwZT17UEFUSDpcIiRwYXRoXCIsUEFUVEVSTjpcIiR2YWxcIn0sJDQ5YzAwMjdjMTljODU5NmUkdmFyJGlzRXhwcmVzc2lvbj1lPT4hIShlWyQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRMb2dpY2FsT3BlcmF0b3IuQU5EXXx8ZVskNDljMDAyN2MxOWM4NTk2ZSR2YXIkTG9naWNhbE9wZXJhdG9yLk9SXSksJDQ5YzAwMjdjMTljODU5NmUkdmFyJGlzUGF0aD1lPT4hIWVbJDQ5YzAwMjdjMTljODU5NmUkdmFyJEtleVR5cGUuUEFUSF0sJDQ5YzAwMjdjMTljODU5NmUkdmFyJGlzTGVhZj1lPT4hJDQ5YzAwMjdjMTljODU5NmUkdmFyJGlzQXJyYXkoZSkmJiQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRpc09iamVjdChlKSYmISQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRpc0V4cHJlc3Npb24oZSksJDQ5YzAwMjdjMTljODU5NmUkdmFyJGNvbnZlcnRUb0V4cGxpY2l0PWU9Pih7WyQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRMb2dpY2FsT3BlcmF0b3IuQU5EXTpPYmplY3Qua2V5cyhlKS5tYXAodD0+KHtbdF06ZVt0XX0pKX0pO2Z1bmN0aW9uICQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRwYXJzZShlLHQse2F1dG86cj0hMH09e30pe2xldCBuPWU9PntsZXQgaT1PYmplY3Qua2V5cyhlKSxhPSQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRpc1BhdGgoZSk7aWYoIWEmJmkubGVuZ3RoPjEmJiEkNDljMDAyN2MxOWM4NTk2ZSR2YXIkaXNFeHByZXNzaW9uKGUpKXJldHVybiBuKCQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRjb252ZXJ0VG9FeHBsaWNpdChlKSk7aWYoJDQ5YzAwMjdjMTljODU5NmUkdmFyJGlzTGVhZihlKSl7bGV0IG49YT9lWyQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRLZXlUeXBlLlBBVEhdOmlbMF0sbz1hP2VbJDQ5YzAwMjdjMTljODU5NmUkdmFyJEtleVR5cGUuUEFUVEVSTl06ZVtuXTtpZighJDQ5YzAwMjdjMTljODU5NmUkdmFyJGlzU3RyaW5nKG8pKXRocm93IEVycm9yKCQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRMT0dJQ0FMX1NFQVJDSF9JTlZBTElEX1FVRVJZX0ZPUl9LRVkobikpO2xldCBzPXtrZXlJZDokNDljMDAyN2MxOWM4NTk2ZSR2YXIkY3JlYXRlS2V5SWQobikscGF0dGVybjpvfTtyZXR1cm4gciYmKHMuc2VhcmNoZXI9JDQ5YzAwMjdjMTljODU5NmUkdmFyJGNyZWF0ZVNlYXJjaGVyKG8sdCkpLHN9bGV0IG89e2NoaWxkcmVuOltdLG9wZXJhdG9yOmlbMF19O3JldHVybiBpLmZvckVhY2godD0+e2xldCByPWVbdF07JDQ5YzAwMjdjMTljODU5NmUkdmFyJGlzQXJyYXkocikmJnIuZm9yRWFjaChlPT57by5jaGlsZHJlbi5wdXNoKG4oZSkpfSl9KSxvfTtyZXR1cm4gJDQ5YzAwMjdjMTljODU5NmUkdmFyJGlzRXhwcmVzc2lvbihlKXx8KGU9JDQ5YzAwMjdjMTljODU5NmUkdmFyJGNvbnZlcnRUb0V4cGxpY2l0KGUpKSxuKGUpfWZ1bmN0aW9uICQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRjb21wdXRlU2NvcmUoZSx7aWdub3JlRmllbGROb3JtOnQ9JDQ5YzAwMjdjMTljODU5NmUkdmFyJENvbmZpZy5pZ25vcmVGaWVsZE5vcm19KXtlLmZvckVhY2goZT0+e2xldCByPTE7ZS5tYXRjaGVzLmZvckVhY2goKHtrZXk6ZSxub3JtOm4sc2NvcmU6aX0pPT57bGV0IGE9ZT9lLndlaWdodDpudWxsO3IqPU1hdGgucG93KDA9PT1pJiZhP051bWJlci5FUFNJTE9OOmksKGF8fDEpKih0PzE6bikpfSksZS5zY29yZT1yfSl9ZnVuY3Rpb24gJDQ5YzAwMjdjMTljODU5NmUkdmFyJHRyYW5zZm9ybU1hdGNoZXMoZSx0KXtsZXQgcj1lLm1hdGNoZXM7dC5tYXRjaGVzPVtdLCQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRpc0RlZmluZWQocikmJnIuZm9yRWFjaChlPT57aWYoISQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRpc0RlZmluZWQoZS5pbmRpY2VzKXx8IWUuaW5kaWNlcy5sZW5ndGgpcmV0dXJuO2xldHtpbmRpY2VzOnIsdmFsdWU6bn09ZSxpPXtpbmRpY2VzOnIsdmFsdWU6bn07ZS5rZXkmJihpLmtleT1lLmtleS5zcmMpLGUuaWR4Pi0xJiYoaS5yZWZJbmRleD1lLmlkeCksdC5tYXRjaGVzLnB1c2goaSl9KX1mdW5jdGlvbiAkNDljMDAyN2MxOWM4NTk2ZSR2YXIkdHJhbnNmb3JtU2NvcmUoZSx0KXt0LnNjb3JlPWUuc2NvcmV9ZnVuY3Rpb24gJDQ5YzAwMjdjMTljODU5NmUkdmFyJGZvcm1hdChlLHQse2luY2x1ZGVNYXRjaGVzOnI9JDQ5YzAwMjdjMTljODU5NmUkdmFyJENvbmZpZy5pbmNsdWRlTWF0Y2hlcyxpbmNsdWRlU2NvcmU6bj0kNDljMDAyN2MxOWM4NTk2ZSR2YXIkQ29uZmlnLmluY2x1ZGVTY29yZX09e30pe2xldCBpPVtdO3JldHVybiByJiZpLnB1c2goJDQ5YzAwMjdjMTljODU5NmUkdmFyJHRyYW5zZm9ybU1hdGNoZXMpLG4mJmkucHVzaCgkNDljMDAyN2MxOWM4NTk2ZSR2YXIkdHJhbnNmb3JtU2NvcmUpLGUubWFwKGU9PntsZXR7aWR4OnJ9PWUsbj17aXRlbTp0W3JdLHJlZkluZGV4OnJ9O3JldHVybiBpLmxlbmd0aCYmaS5mb3JFYWNoKHQ9Pnt0KGUsbil9KSxufSl9Y2xhc3MgJDQ5YzAwMjdjMTljODU5NmUkZXhwb3J0JDJlMmJjZDg3MzlhZTAzOXtjb25zdHJ1Y3RvcihlLHQ9e30scil7dGhpcy5vcHRpb25zPXsuLi4kNDljMDAyN2MxOWM4NTk2ZSR2YXIkQ29uZmlnLC4uLnR9LHRoaXMub3B0aW9ucy51c2VFeHRlbmRlZFNlYXJjaCx0aGlzLl9rZXlTdG9yZT1uZXcgJDQ5YzAwMjdjMTljODU5NmUkdmFyJEtleVN0b3JlKHRoaXMub3B0aW9ucy5rZXlzKSx0aGlzLnNldENvbGxlY3Rpb24oZSxyKX1zZXRDb2xsZWN0aW9uKGUsdCl7aWYodGhpcy5fZG9jcz1lLHQmJiEodCBpbnN0YW5jZW9mICQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRGdXNlSW5kZXgpKXRocm93IEVycm9yKCQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRJTkNPUlJFQ1RfSU5ERVhfVFlQRSk7dGhpcy5fbXlJbmRleD10fHwkNDljMDAyN2MxOWM4NTk2ZSR2YXIkY3JlYXRlSW5kZXgodGhpcy5vcHRpb25zLmtleXMsdGhpcy5fZG9jcyx7Z2V0Rm46dGhpcy5vcHRpb25zLmdldEZuLGZpZWxkTm9ybVdlaWdodDp0aGlzLm9wdGlvbnMuZmllbGROb3JtV2VpZ2h0fSl9YWRkKGUpeyQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRpc0RlZmluZWQoZSkmJih0aGlzLl9kb2NzLnB1c2goZSksdGhpcy5fbXlJbmRleC5hZGQoZSkpfXJlbW92ZShlPSgpPT4hMSl7bGV0IHQ9W107Zm9yKGxldCByPTAsbj10aGlzLl9kb2NzLmxlbmd0aDtyPG47cis9MSl7bGV0IGk9dGhpcy5fZG9jc1tyXTtlKGkscikmJih0aGlzLnJlbW92ZUF0KHIpLHItPTEsbi09MSx0LnB1c2goaSkpfXJldHVybiB0fXJlbW92ZUF0KGUpe3RoaXMuX2RvY3Muc3BsaWNlKGUsMSksdGhpcy5fbXlJbmRleC5yZW1vdmVBdChlKX1nZXRJbmRleCgpe3JldHVybiB0aGlzLl9teUluZGV4fXNlYXJjaChlLHtsaW1pdDp0PS0xfT17fSl7bGV0e2luY2x1ZGVNYXRjaGVzOnIsaW5jbHVkZVNjb3JlOm4sc2hvdWxkU29ydDppLHNvcnRGbjphLGlnbm9yZUZpZWxkTm9ybTpvfT10aGlzLm9wdGlvbnMscz0kNDljMDAyN2MxOWM4NTk2ZSR2YXIkaXNTdHJpbmcoZSk/JDQ5YzAwMjdjMTljODU5NmUkdmFyJGlzU3RyaW5nKHRoaXMuX2RvY3NbMF0pP3RoaXMuX3NlYXJjaFN0cmluZ0xpc3QoZSk6dGhpcy5fc2VhcmNoT2JqZWN0TGlzdChlKTp0aGlzLl9zZWFyY2hMb2dpY2FsKGUpO3JldHVybiAkNDljMDAyN2MxOWM4NTk2ZSR2YXIkY29tcHV0ZVNjb3JlKHMse2lnbm9yZUZpZWxkTm9ybTpvfSksaSYmcy5zb3J0KGEpLCQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRpc051bWJlcih0KSYmdD4tMSYmKHM9cy5zbGljZSgwLHQpKSwkNDljMDAyN2MxOWM4NTk2ZSR2YXIkZm9ybWF0KHMsdGhpcy5fZG9jcyx7aW5jbHVkZU1hdGNoZXM6cixpbmNsdWRlU2NvcmU6bn0pfV9zZWFyY2hTdHJpbmdMaXN0KGUpe2xldCB0PSQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRjcmVhdGVTZWFyY2hlcihlLHRoaXMub3B0aW9ucykse3JlY29yZHM6cn09dGhpcy5fbXlJbmRleCxuPVtdO3JldHVybiByLmZvckVhY2goKHt2OmUsaTpyLG46aX0pPT57aWYoISQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRpc0RlZmluZWQoZSkpcmV0dXJuO2xldHtpc01hdGNoOmEsc2NvcmU6byxpbmRpY2VzOnN9PXQuc2VhcmNoSW4oZSk7YSYmbi5wdXNoKHtpdGVtOmUsaWR4OnIsbWF0Y2hlczpbe3Njb3JlOm8sdmFsdWU6ZSxub3JtOmksaW5kaWNlczpzfV19KX0pLG59X3NlYXJjaExvZ2ljYWwoZSl7bGV0IHQ9JDQ5YzAwMjdjMTljODU5NmUkdmFyJHBhcnNlKGUsdGhpcy5vcHRpb25zKSxyPShlLHQsbik9PntpZighZS5jaGlsZHJlbil7bGV0e2tleUlkOnIsc2VhcmNoZXI6aX09ZSxhPXRoaXMuX2ZpbmRNYXRjaGVzKHtrZXk6dGhpcy5fa2V5U3RvcmUuZ2V0KHIpLHZhbHVlOnRoaXMuX215SW5kZXguZ2V0VmFsdWVGb3JJdGVtQXRLZXlJZCh0LHIpLHNlYXJjaGVyOml9KTtyZXR1cm4gYSYmYS5sZW5ndGg/W3tpZHg6bixpdGVtOnQsbWF0Y2hlczphfV06W119bGV0IGk9W107Zm9yKGxldCBhPTAsbz1lLmNoaWxkcmVuLmxlbmd0aDthPG87YSs9MSl7bGV0IG89cihlLmNoaWxkcmVuW2FdLHQsbik7aWYoby5sZW5ndGgpaS5wdXNoKC4uLm8pO2Vsc2UgaWYoZS5vcGVyYXRvcj09PSQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRMb2dpY2FsT3BlcmF0b3IuQU5EKXJldHVybltdfXJldHVybiBpfSxuPXRoaXMuX215SW5kZXgucmVjb3JkcyxpPXt9LGE9W107cmV0dXJuIG4uZm9yRWFjaCgoeyQ6ZSxpOm59KT0+e2lmKCQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRpc0RlZmluZWQoZSkpe2xldCBvPXIodCxlLG4pO28ubGVuZ3RoJiYoaVtuXXx8KGlbbl09e2lkeDpuLGl0ZW06ZSxtYXRjaGVzOltdfSxhLnB1c2goaVtuXSkpLG8uZm9yRWFjaCgoe21hdGNoZXM6ZX0pPT57aVtuXS5tYXRjaGVzLnB1c2goLi4uZSl9KSl9fSksYX1fc2VhcmNoT2JqZWN0TGlzdChlKXtsZXQgdD0kNDljMDAyN2MxOWM4NTk2ZSR2YXIkY3JlYXRlU2VhcmNoZXIoZSx0aGlzLm9wdGlvbnMpLHtrZXlzOnIscmVjb3JkczpufT10aGlzLl9teUluZGV4LGk9W107cmV0dXJuIG4uZm9yRWFjaCgoeyQ6ZSxpOm59KT0+e2lmKCEkNDljMDAyN2MxOWM4NTk2ZSR2YXIkaXNEZWZpbmVkKGUpKXJldHVybjtsZXQgYT1bXTtyLmZvckVhY2goKHIsbik9PnthLnB1c2goLi4udGhpcy5fZmluZE1hdGNoZXMoe2tleTpyLHZhbHVlOmVbbl0sc2VhcmNoZXI6dH0pKX0pLGEubGVuZ3RoJiZpLnB1c2goe2lkeDpuLGl0ZW06ZSxtYXRjaGVzOmF9KX0pLGl9X2ZpbmRNYXRjaGVzKHtrZXk6ZSx2YWx1ZTp0LHNlYXJjaGVyOnJ9KXtpZighJDQ5YzAwMjdjMTljODU5NmUkdmFyJGlzRGVmaW5lZCh0KSlyZXR1cm5bXTtsZXQgbj1bXTtpZigkNDljMDAyN2MxOWM4NTk2ZSR2YXIkaXNBcnJheSh0KSl0LmZvckVhY2goKHt2OnQsaTppLG46YX0pPT57aWYoISQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRpc0RlZmluZWQodCkpcmV0dXJuO2xldHtpc01hdGNoOm8sc2NvcmU6cyxpbmRpY2VzOmx9PXIuc2VhcmNoSW4odCk7byYmbi5wdXNoKHtzY29yZTpzLGtleTplLHZhbHVlOnQsaWR4Omksbm9ybTphLGluZGljZXM6bH0pfSk7ZWxzZXtsZXR7djppLG46YX09dCx7aXNNYXRjaDpvLHNjb3JlOnMsaW5kaWNlczpsfT1yLnNlYXJjaEluKGkpO28mJm4ucHVzaCh7c2NvcmU6cyxrZXk6ZSx2YWx1ZTppLG5vcm06YSxpbmRpY2VzOmx9KX1yZXR1cm4gbn19ZnVuY3Rpb24gJGQ5MzkwOWQ3NzE1ODcxYjYkZXhwb3J0JDU1YWQ1Yzc3MzA2YmRjYWIoZSx0KXtsZXRbcixuLGldPWUuc3BsaXQoXCI6XCIpLFthLG9dPXQuc3BsaXQoXCI6XCIpLHM9NjM3MSxsPSRkOTM5MDlkNzcxNTg3MWI2JHZhciRkZWcycmFkKGEtciksdT0kZDkzOTA5ZDc3MTU4NzFiNiR2YXIkZGVnMnJhZChvLW4pLGM9TWF0aC5zaW4obC8yKSpNYXRoLnNpbihsLzIpK01hdGguY29zKCRkOTM5MDlkNzcxNTg3MWI2JHZhciRkZWcycmFkKHIpKSpNYXRoLmNvcygkZDkzOTA5ZDc3MTU4NzFiNiR2YXIkZGVnMnJhZChhKSkqTWF0aC5zaW4odS8yKSpNYXRoLnNpbih1LzIpLHA9MipNYXRoLmF0YW4yKE1hdGguc3FydChjKSxNYXRoLnNxcnQoMS1jKSkqcztyZXR1cm4gTnVtYmVyKGkpPj1wfWZ1bmN0aW9uICRkOTM5MDlkNzcxNTg3MWI2JHZhciRkZWcycmFkKGUpe3JldHVybiBNYXRoLlBJLzE4MCplfWZ1bmN0aW9uICRkOTM5MDlkNzcxNTg3MWI2JGV4cG9ydCRhYTM1MGI5NmQ5MWNkOTQoe3R5cGU6ZSxkYXRlOnQ9MCxtYXRjaDpyPSEwfT17fSxuKXtpZighbiYmZSlyZXR1cm4hMTtsZXQgaT1uZXcgRGF0ZSxhPSEwO3N3aXRjaChlKXtjYXNlXCJkYXlcIjpsZXQgbz0kZDkzOTA5ZDc3MTU4NzFiNiR2YXIkZ2V0RGF0ZUluTXModCkscz0kZDkzOTA5ZDc3MTU4NzFiNiR2YXIkZ2V0RGF0ZUluTXModCsxKTthPW88PW4mJm48czticmVhaztjYXNlXCJkYXlzXCI6aWYodDwwKXtsZXQgZT0kZDkzOTA5ZDc3MTU4NzFiNiR2YXIkZ2V0RGF0ZUluTXMoMSk7YT0kZDkzOTA5ZDc3MTU4NzFiNiR2YXIkZ2V0RGF0ZUluTXMoLTYpPD1uJiZuPGV9ZWxzZXtsZXQgZT0kZDkzOTA5ZDc3MTU4NzFiNiR2YXIkZ2V0RGF0ZUluTXMoKSx0PSRkOTM5MDlkNzcxNTg3MWI2JHZhciRnZXREYXRlSW5Ncyg3KTthPWU8PW4mJm48dH1icmVhaztjYXNlXCJkYXlfd2Vla1wiOmE9dD09PW5ldyBEYXRlKG4pLmdldERheSgpO2JyZWFrO2Nhc2VcIndlZWtcIjpsZXQgbD1pLmdldERhdGUoKS1pLmdldERheSgpLHU9bCsoLTI9PXQ/MTM6NiksW2MscF09JGQ5MzkwOWQ3NzE1ODcxYjYkdmFyJGdldFdlZWsoaS5zZXREYXRlKGwrNyp0KSxuZXcgRGF0ZSgpLnNldERhdGUodSs3KnQpKTthPWM8PW4mJm48PXA7YnJlYWs7Y2FzZVwibW9udGhcIjppZihpLmdldEZ1bGxZZWFyKCkhPT1uZXcgRGF0ZShuKS5nZXRGdWxsWWVhcigpKXJldHVybiExO2E9aS5nZXRNb250aCgpK3Q9PT1uZXcgRGF0ZShuKS5nZXRNb250aCgpO2JyZWFrO2Nhc2VcInllYXJcIjphPWkuZ2V0RnVsbFllYXIoKSt0PT09bmV3IERhdGUobikuZ2V0RnVsbFllYXIoKTticmVhaztkZWZhdWx0OnJldHVybiEwfXJldHVybiByP2E6IWF9ZnVuY3Rpb24gJGQ5MzkwOWQ3NzE1ODcxYjYkdmFyJGdldFdlZWsoZSx0KXtyZXR1cm5bbmV3IERhdGUoZSksbmV3IERhdGUodCldfWZ1bmN0aW9uICRkOTM5MDlkNzcxNTg3MWI2JHZhciRnZXREYXRlSW5NcyhlPTApe2xldCB0PW5ldyBEYXRlO3JldHVybiBuZXcgRGF0ZSh0LmdldEZ1bGxZZWFyKCksdC5nZXRNb250aCgpLHQuZ2V0RGF0ZSgpK2UpLnZhbHVlT2YoKX1mdW5jdGlvbiAkZDkzOTA5ZDc3MTU4NzFiNiRleHBvcnQkMjkzYTdlZGU5MzU0YmVlMChlLHQpe2lmKGUmJmUubGVuZ3RoKXJldHVybiB0P2UuZmlsdGVyKGU9PmUuZmllbGRzLmZpbmQoZT0+ZS5pbmRleF92YWx1ZSYmLTEhPT1lLmluZGV4X3ZhbHVlLnRvTG93ZXJDYXNlKCkuaW5kZXhPZih0LnRvTG93ZXJDYXNlKCkpKSk6ZX0kNDljMDAyN2MxOWM4NTk2ZSRleHBvcnQkMmUyYmNkODczOWFlMDM5LnZlcnNpb249XCI2LjYuMlwiLCQ0OWMwMDI3YzE5Yzg1OTZlJGV4cG9ydCQyZTJiY2Q4NzM5YWUwMzkuY3JlYXRlSW5kZXg9JDQ5YzAwMjdjMTljODU5NmUkdmFyJGNyZWF0ZUluZGV4LCQ0OWMwMDI3YzE5Yzg1OTZlJGV4cG9ydCQyZTJiY2Q4NzM5YWUwMzkucGFyc2VJbmRleD0kNDljMDAyN2MxOWM4NTk2ZSR2YXIkcGFyc2VJbmRleCwkNDljMDAyN2MxOWM4NTk2ZSRleHBvcnQkMmUyYmNkODczOWFlMDM5LmNvbmZpZz0kNDljMDAyN2MxOWM4NTk2ZSR2YXIkQ29uZmlnLCQ0OWMwMDI3YzE5Yzg1OTZlJGV4cG9ydCQyZTJiY2Q4NzM5YWUwMzkucGFyc2VRdWVyeT0kNDljMDAyN2MxOWM4NTk2ZSR2YXIkcGFyc2UsJDQ5YzAwMjdjMTljODU5NmUkdmFyJHJlZ2lzdGVyKCQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRFeHRlbmRlZFNlYXJjaCk7bGV0ICRkOTM5MDlkNzcxNTg3MWI2JHZhciRmdXNlPW5ldyAkNDljMDAyN2MxOWM4NTk2ZSRleHBvcnQkMmUyYmNkODczOWFlMDM5KFtdKTtmdW5jdGlvbiAkZDkzOTA5ZDc3MTU4NzFiNiRleHBvcnQkODMzMzI4ZWNkZTYzNzY3MyhlLHQpe3JldHVybiAkZDkzOTA5ZDc3MTU4NzFiNiR2YXIkZnVzZS5zZXRDb2xsZWN0aW9uKHQpLCEhJGQ5MzkwOWQ3NzE1ODcxYjYkdmFyJGZ1c2Uuc2VhcmNoKGUpLmxlbmd0aH1mdW5jdGlvbiAkY2VkZmJhMWNkYWQ1YWQ1OCRleHBvcnQkMmUyYmNkODczOWFlMDM5KGUsdCl7bGV0IHI9bmV3ICRjZWRmYmExY2RhZDVhZDU4JHZhciRJdGVtc0ZpbHRlcjtyZXR1cm4gZSYmZS5sZW5ndGg/ci5maWx0ZXIodCxlKTpbXX1jbGFzcyAkY2VkZmJhMWNkYWQ1YWQ1OCR2YXIkQ2hlY2tlcntjaGFuZ2VCZWhhdmlvcihlKXtzd2l0Y2goZSl7Y2FzZVwiY29udGFpbl9vclwiOnRoaXMuX2NoZWNrRm49ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5zb21lKHQ9PmUuc29tZShlPT4tMSE9PWUuaW5kZXhPZih0KSkpfTticmVhaztjYXNlXCJjb250YWluX2FuZFwiOnRoaXMuX2NoZWNrRm49ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5ldmVyeSh0PT5lLnNvbWUoZT0+LTEhPT1lLmluZGV4T2YodCkpKX07YnJlYWs7Y2FzZVwibm90X2NvbnRhaW5fb3JcIjp0aGlzLl9jaGVja0ZuPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQuc29tZSh0PT5lLmV2ZXJ5KGU9Pi0xPT09ZS5pbmRleE9mKHQpKSl9O2JyZWFrO2Nhc2VcIm5vdF9jb250YWluX2FuZFwiOnRoaXMuX2NoZWNrRm49ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5ldmVyeSh0PT5lLmV2ZXJ5KGU9Pi0xPT09ZS5pbmRleE9mKHQpKSl9O2JyZWFrO2Nhc2VcImVxdWFsX29yXCI6dGhpcy5fY2hlY2tGbj1mdW5jdGlvbihlLHQpe3JldHVybiEhZS5sZW5ndGgmJmUuc29tZShlPT50LnNvbWUodD0+ZT09dCkpfTticmVhaztjYXNlXCJlcXVhbF9hbmRcIjp0aGlzLl9jaGVja0ZuPWZ1bmN0aW9uKGUsdCl7aWYoIWUubGVuZ3RoKXJldHVybiExO2xldCByPW5ldyBTZXQodCk7Zm9yKDtlLmxlbmd0aCYmci5zaXplOyl7bGV0IHQ9ZS5wb3AoKTtyLmhhcyh0KSYmci5kZWxldGUodCl9cmV0dXJuIXIuc2l6ZX07YnJlYWs7Y2FzZVwibm90X2VxdWFsX29yXCI6dGhpcy5fY2hlY2tGbj1mdW5jdGlvbihlLHQpe2lmKCFlLmxlbmd0aClyZXR1cm4hMDtsZXQgcj1uZXcgU2V0KHQpO2Zvcig7ZS5sZW5ndGgmJnIuc2l6ZTspe2xldCB0PWUucG9wKCk7aWYoIXIuaGFzKHQpKXJldHVybiEwfXJldHVybiExfTticmVhaztjYXNlXCJub3RfZXF1YWxfYW5kXCI6dGhpcy5fY2hlY2tGbj1mdW5jdGlvbihlLHQpe2xldCByPW5ldyBTZXQodCk7Zm9yKDtlLmxlbmd0aCYmci5zaXplOyl7bGV0IHQ9ZS5wb3AoKTtpZihyLmhhcyh0KSlyZXR1cm4hMX1yZXR1cm4hMH07YnJlYWs7Y2FzZVwiYmlnZ2VyXCI6dGhpcy5fY2hlY2tGbj1mdW5jdGlvbihlLHQpe3JldHVybiB0LnNvbWUodD0+ZS5ldmVyeShlPT5lPnQpKX07YnJlYWs7Y2FzZVwibG93ZXJcIjp0aGlzLl9jaGVja0ZuPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQuc29tZSh0PT5lLmV2ZXJ5KGU9PmU8dCkpfTticmVhaztjYXNlXCJyYW5nZVwiOnRoaXMuX2NoZWNrRm49ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5zb21lKHQ9PmUuZXZlcnkoZT0+dC5zdGFydDw9ZSYmZTx0LmVuZCkpfTticmVhaztjYXNlXCJ2YWx1ZVwiOnRoaXMuX2NoZWNrRm49ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5zb21lKHQ9PmUuc29tZShlPT5lPT10KSl9O2JyZWFrO2Nhc2VcInNlYXJjaFwiOnRoaXMuX2NoZWNrRm49ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5zb21lKHQ9PiRkOTM5MDlkNzcxNTg3MWI2JGV4cG9ydCQ4MzMzMjhlY2RlNjM3NjczKHQsZSkpfTticmVhaztjYXNlXCJwaG9uZV9lcXVhbF9vclwiOnRoaXMuX2NoZWNrRm49ZnVuY3Rpb24oZSx0KXtyZXR1cm4hIWUubGVuZ3RoJiZ0LnNvbWUodD0+ZS5zb21lKGU9Pi0xIT09ZS5yZXBsYWNlKC9bXjAtOV0vZyxcIlwiKS5pbmRleE9mKHQucmVwbGFjZSgvW14wLTldL2csXCJcIikpKSl9O2JyZWFrO2Nhc2VcImRpc3RhbmNlXCI6dGhpcy5fY2hlY2tGbj1mdW5jdGlvbihlLHQpe3JldHVybiB0LnNvbWUodD0+ZS5zb21lKGU9PiRkOTM5MDlkNzcxNTg3MWI2JGV4cG9ydCQ1NWFkNWM3NzMwNmJkY2FiKHQsZSkpKX07YnJlYWs7Y2FzZVwiZGF0ZV9pblwiOmNhc2VcImRhdGVfb3V0XCI6dGhpcy5fY2hlY2tGbj1mdW5jdGlvbihlLHQpe3JldHVybiB0LnNvbWUodD0+ZS5zb21lKGU9PiRkOTM5MDlkNzcxNTg3MWI2JGV4cG9ydCRhYTM1MGI5NmQ5MWNkOTQodCxlKSkpfTticmVhaztjYXNlXCJyZWN1cnJpbmdfZGF0ZVwiOnRoaXMuX2NoZWNrRm49ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5zb21lKHQ9PmUuc29tZShlPT5ndWRodWIuY2hlY2tSZWN1cnJpbmdEYXRlKGUsdCkpKX07YnJlYWs7Y2FzZVwibW9udGhfYmVmb3JlX2RhdGVcIjp0aGlzLl9jaGVja0ZuPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQuc29tZSh0PT5lLnNvbWUoZT0+e2xldCByPW5ldyBEYXRlKGUpLG49bmV3IERhdGUodCksaT1uZXcgRGF0ZShuKTtyZXR1cm4gaS5zZXRNb250aChpLmdldE1vbnRoKCktMSksIShpc05hTihyKXx8aXNOYU4oaSl8fGlzTmFOKG4pKSYmcj49aSYmcjw9bn0pKX19cmV0dXJuIHRoaXN9Y2hlY2soZSl7cmV0dXJuIHRoaXMuY2hhbmdlQmVoYXZpb3IoZS5nZXRDaGVja09wdGlvbigpKS5fY2hlY2tGbihlLmdldEVudGl0eSgpLGUuZ2V0RmlsdGVyVmFsdWVzKCkpfX1jbGFzcyAkY2VkZmJhMWNkYWQ1YWQ1OCR2YXIkTnVtYmVyRmV0Y2hTdHJhdGVneXtjb252ZXJ0KGUpe3JldHVybltOdW1iZXIoZSldfWNvbnZlcnRGaWx0ZXJWYWx1ZShlKXtyZXR1cm4gTnVtYmVyKGUpfX1jbGFzcyAkY2VkZmJhMWNkYWQ1YWQ1OCR2YXIkUmFuZ2VGZXRjaFN0cmF0ZWd5IGV4dGVuZHMgJGNlZGZiYTFjZGFkNWFkNTgkdmFyJE51bWJlckZldGNoU3RyYXRlZ3l7Y29udmVydEZpbHRlclZhbHVlKGUpe3JldHVybntzdGFydDpOdW1iZXIoZS5zcGxpdChcIjpcIilbMF0pLGVuZDpOdW1iZXIoZS5zcGxpdChcIjpcIilbMV0pfX19Y2xhc3MgJGNlZGZiYTFjZGFkNWFkNTgkdmFyJFN0cmluZ0ZldGNoU3RyYXRlZ3l7Y29udmVydChlKXtyZXR1cm4gU3RyaW5nKG51bGwhPWU/ZTpcIlwiKS50b0xvd2VyQ2FzZSgpLnNwbGl0KFwiLFwiKX1jb252ZXJ0RmlsdGVyVmFsdWUoZSl7cmV0dXJuIDA9PT1lP1wiMFwiOlN0cmluZyhlfHxcIlwiKS50b0xvd2VyQ2FzZSgpfX1jbGFzcyAkY2VkZmJhMWNkYWQ1YWQ1OCR2YXIkZGF0ZUZldGNoU3RyYXRlZ3kgZXh0ZW5kcyAkY2VkZmJhMWNkYWQ1YWQ1OCR2YXIkTnVtYmVyRmV0Y2hTdHJhdGVneXtjb252ZXJ0RmlsdGVyVmFsdWUoZSl7bGV0W3QscixuXT1lLnNwbGl0KFwiOlwiKTtyZXR1cm57dHlwZTp0LGRhdGU6TnVtYmVyKHIpLG1hdGNoOiEhTnVtYmVyKG4pfX19Y2xhc3MgJGNlZGZiYTFjZGFkNWFkNTgkdmFyJEJvb2xlYW5GZXRjaFN0cmF0ZWd5e2NvbnZlcnQoZSl7cmV0dXJuW1N0cmluZyghIWUpXX1jb252ZXJ0RmlsdGVyVmFsdWUoZSl7cmV0dXJuIFN0cmluZyhlKX19Y2xhc3MgJGNlZGZiYTFjZGFkNWFkNTgkdmFyJFJlY3VycmluZ0RhdGVTdHJhdGVneXtjb252ZXJ0KGUpe3JldHVybltOdW1iZXIoZSldfWNvbnZlcnRGaWx0ZXJWYWx1ZShlKXtyZXR1cm4gU3RyaW5nKGUpfX1jbGFzcyAkY2VkZmJhMWNkYWQ1YWQ1OCR2YXIkTW9udGhCZWZvcmVEYXRlU3RyYXRlZ3l7Y29udmVydChlKXtyZXR1cm5bTnVtYmVyKGUpXX1jb252ZXJ0RmlsdGVyVmFsdWUoZSl7cmV0dXJuIE51bWJlcihlKX19Y2xhc3MgJGNlZGZiYTFjZGFkNWFkNTgkdmFyJEFnZ3JlZ2F0ZXtjb25zdHJ1Y3Rvcigpe3RoaXMuX3N0cmF0ZWdpZXM9e3N0cmluZ1N0cmF0ZWd5Om5ldyAkY2VkZmJhMWNkYWQ1YWQ1OCR2YXIkU3RyaW5nRmV0Y2hTdHJhdGVneSxudW1iZXJTdHJhdGVneTpuZXcgJGNlZGZiYTFjZGFkNWFkNTgkdmFyJE51bWJlckZldGNoU3RyYXRlZ3ksYm9vbGVhblN0cmF0ZWd5Om5ldyAkY2VkZmJhMWNkYWQ1YWQ1OCR2YXIkQm9vbGVhbkZldGNoU3RyYXRlZ3kscmFuZ2VTdHJhdGVneTpuZXcgJGNlZGZiYTFjZGFkNWFkNTgkdmFyJFJhbmdlRmV0Y2hTdHJhdGVneSxkYXRlU3RyYXRlZ3k6bmV3ICRjZWRmYmExY2RhZDVhZDU4JHZhciRkYXRlRmV0Y2hTdHJhdGVneSxyZWN1cnJpbmdEYXRlU3RyYXRlZ3k6bmV3ICRjZWRmYmExY2RhZDVhZDU4JHZhciRSZWN1cnJpbmdEYXRlU3RyYXRlZ3ksbW9udGhCZWZvcmVEYXRlOm5ldyAkY2VkZmJhMWNkYWQ1YWQ1OCR2YXIkTW9udGhCZWZvcmVEYXRlU3RyYXRlZ3l9fXNldFN0cmF0ZWd5KGUpe3N3aXRjaCh0aGlzLl9jaGVja09wdGlvbj1lLGUpe2Nhc2VcImNvbnRhaW5fb3JcIjpjYXNlXCJjb250YWluX2FuZFwiOmNhc2VcIm5vdF9jb250YWluX29yXCI6Y2FzZVwibm90X2NvbnRhaW5fYW5kXCI6Y2FzZVwiZXF1YWxfb3JcIjpjYXNlXCJlcXVhbF9hbmRcIjpjYXNlXCJub3RfZXF1YWxfb3JcIjpjYXNlXCJub3RfZXF1YWxfYW5kXCI6Y2FzZVwicGhvbmVfZXF1YWxfb3JcIjpjYXNlXCJkaXN0YW5jZVwiOmNhc2VcInNlYXJjaFwiOnRoaXMuX2N1cnJlbnRTdHJhdGVneT10aGlzLl9zdHJhdGVnaWVzLnN0cmluZ1N0cmF0ZWd5O2JyZWFrO2Nhc2VcImJpZ2dlclwiOmNhc2VcImxvd2VyXCI6dGhpcy5fY3VycmVudFN0cmF0ZWd5PXRoaXMuX3N0cmF0ZWdpZXMubnVtYmVyU3RyYXRlZ3k7YnJlYWs7Y2FzZVwicmFuZ2VcIjp0aGlzLl9jdXJyZW50U3RyYXRlZ3k9dGhpcy5fc3RyYXRlZ2llcy5yYW5nZVN0cmF0ZWd5O2JyZWFrO2Nhc2VcImRhdGVfaW5cIjpjYXNlXCJkYXRlX291dFwiOnRoaXMuX2N1cnJlbnRTdHJhdGVneT10aGlzLl9zdHJhdGVnaWVzLmRhdGVTdHJhdGVneTticmVhaztjYXNlXCJ2YWx1ZVwiOnRoaXMuX2N1cnJlbnRTdHJhdGVneT10aGlzLl9zdHJhdGVnaWVzLmJvb2xlYW5TdHJhdGVneTticmVhaztjYXNlXCJyZWN1cnJpbmdfZGF0ZVwiOnRoaXMuX2N1cnJlbnRTdHJhdGVneT10aGlzLl9zdHJhdGVnaWVzLnJlY3VycmluZ0RhdGVTdHJhdGVneTtjYXNlXCJtb250aF9iZWZvcmVfZGF0ZVwiOnRoaXMuX2N1cnJlbnRTdHJhdGVneT10aGlzLl9zdHJhdGVnaWVzLm1vbnRoQmVmb3JlRGF0ZX1yZXR1cm4gdGhpc31zZXRFbnRpdHkoZSl7cmV0dXJuIHRoaXMuX2VudGl0eT10aGlzLl9jdXJyZW50U3RyYXRlZ3kuY29udmVydChlKSx0aGlzfWdldEVudGl0eSgpe3JldHVybiB0aGlzLl9lbnRpdHl9c2V0RmlsdGVyVmFsdWVzKGUpe2xldCB0PUFycmF5LmlzQXJyYXkoZSk/ZTpbZV07cmV0dXJuIHRoaXMuX2ZpbHRlclZhbHVlcz10Lm1hcChlPT50aGlzLl9jdXJyZW50U3RyYXRlZ3kuY29udmVydEZpbHRlclZhbHVlKGUpKSx0aGlzfWdldEZpbHRlclZhbHVlcygpe3JldHVybiB0aGlzLl9maWx0ZXJWYWx1ZXN9Z2V0Q2hlY2tPcHRpb24oKXtyZXR1cm4gdGhpcy5fY2hlY2tPcHRpb259fWNsYXNzICRjZWRmYmExY2RhZDVhZDU4JHZhciRJdGVtc0ZpbHRlcntjb25zdHJ1Y3Rvcigpe31maWx0ZXIoZSx0KXtsZXQgcj10aGlzLmNoZWNrSWZBbGxGaWx0ZXJzSGF2ZUFuZFN0cmF0ZWd5KGUpLG49W10saT1lLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZS52YWx1ZXNBcnJheS5sZW5ndGh9KTtmb3IobGV0IGUgb2YgdCl7bGV0IHQ9ITA7Zm9yKGxldCBuPTA7bjxpLmxlbmd0aDtuKyspe2xldCBhPWlbbl0sbz1lLmZpZWxkcy5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBhLmZpZWxkX2lkPT1lLmZpZWxkX2lkfSkscz1uZXcgJGNlZGZiYTFjZGFkNWFkNTgkdmFyJEFnZ3JlZ2F0ZSxsPW5ldyAkY2VkZmJhMWNkYWQ1YWQ1OCR2YXIkQ2hlY2tlcjtzd2l0Y2gocy5zZXRTdHJhdGVneShhLnNlYXJjaF90eXBlKS5zZXRFbnRpdHkobyYmdm9pZCAwIT1vLmZpZWxkX3ZhbHVlP28uZmllbGRfdmFsdWU6bnVsbCkuc2V0RmlsdGVyVmFsdWVzKGEudmFsdWVzQXJyYXkpLGEuYm9vbGVhbl9zdHJhdGVneSl7Y2FzZVwiYW5kXCI6ZGVmYXVsdDp0PXQmJmwuY2hlY2socyk7YnJlYWs7Y2FzZVwib3JcIjp0PXR8fGwuY2hlY2socyl9aWYoIXQmJnIpYnJlYWt9dCYmbi5wdXNoKGUpfXJldHVybiBuLmxlbmd0aHx8ZS5sZW5ndGgmJiFuLmxlbmd0aD9uOnR9Y2hlY2tJZkFsbEZpbHRlcnNIYXZlQW5kU3RyYXRlZ3koZSl7cmV0dXJuIGUuZXZlcnkoZT0+IWUuYm9vbGVhbl9zdHJhdGVneXx8XCJhbmRcIj09ZS5ib29sZWFuX3N0cmF0ZWd5KX19ZnVuY3Rpb24gJDhhNzNmNDlmYzA5ZGU0ZjAkZXhwb3J0JGFhNzg3MzAyZWMwM2JmMmEoZSx0KXtsZXQgcj1bXSxuPVtdO2lmKGUubGVuZ3RoPjA/ZS5mb3JFYWNoKGU9PntuLnB1c2goZSl9KTpuPXQsbi5sZW5ndGg+MCl7bi5mb3JFYWNoKChlLGkpPT57Zm9yKGxldCBhPTA7YTx0Lmxlbmd0aDthKyspZS5maWVsZF9pZD09dFthXS5maWVsZF9pZCYmKHIucHVzaChlLmZpZWxkX2lkKSxuW2ldPWd1ZGh1Yi5tZXJnZU9iamVjdHModFthXSxlKSl9KTtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKylyLmluY2x1ZGVzKHRbZV0uZmllbGRfaWQpfHxuLnB1c2godFtlXSl9cmV0dXJuIG59dmFyICRlNGRkOGRlMDgxYjdiMjI5JGV4cG9ydHM9e307ZnVuY3Rpb24gJDUwZWFiYmQ5MDYxODEyZGIkZXhwb3J0JDI0NjZiNjlkOWQyNjAzN2MoZSx0KXtsZXQgcj1bXTtyZXR1cm4gdC5mb3JFYWNoKHQ9PntsZXQgbj1bXTt0cnl7bj0kcGFyY2VsJGludGVyb3BEZWZhdWx0KCRlNGRkOGRlMDgxYjdiMjI5JGV4cG9ydHMpLnBhdGhzKGUsdC5qc29uX3BhdGgpLHIucHVzaCh7ZmllbGRfaWQ6dC5maWVsZF9pZCxqc29uX3BhdGhzOm4sanNvbl9wYXRoc19sZW5ndGg6bi5sZW5ndGh9KX1jYXRjaChlKXtjb25zb2xlLmxvZyhlKX19KSxyLnNvcnQoKGUsdCk9PnQuanNvbl9wYXRoc19sZW5ndGgtZS5qc29uX3BhdGhzX2xlbmd0aCksJDUwZWFiYmQ5MDYxODEyZGIkdmFyJGdldFBhdGhGb3JJdGVtcyhyKS5tYXAodD0+KHtmaWVsZHM6dC5maWVsZHMubWFwKHQ9Pih7ZmllbGRfaWQ6dC5maWVsZF9pZCxmaWVsZF92YWx1ZTokcGFyY2VsJGludGVyb3BEZWZhdWx0KCRlNGRkOGRlMDgxYjdiMjI5JGV4cG9ydHMpLnZhbHVlKGUsdC5qc29uX3BhdGgpfSkpfSkpfWZ1bmN0aW9uICQ1MGVhYmJkOTA2MTgxMmRiJHZhciRiZXN0TWF0Y2goZSx0KXtsZXQgcj1bXTtyZXR1cm4gdC5mb3JFYWNoKGU9PntyLnB1c2goe3BhdGhfdG9fY29tcGFyZTplLG1hdGNoX2NvZWZmaWNpZW50OjB9KX0pLGUuZm9yRWFjaCgoZSx0KT0+e2Zvcih2YXIgbj0wO248ci5sZW5ndGg7bisrKXJbbl0ucGF0aF90b19jb21wYXJlW3RdPT1lJiYocltuXS5tYXRjaF9jb2VmZmljaWVudCs9MS8odCsxKSl9KSxyLnNvcnQoKGUsdCk9PnQubWF0Y2hfY29lZmZpY2llbnQtZS5tYXRjaF9jb2VmZmljaWVudCksclswXS5wYXRoX3RvX2NvbXBhcmV9ZnVuY3Rpb24gJDUwZWFiYmQ5MDYxODEyZGIkdmFyJGdldFBhdGhGb3JJdGVtcyhlKXtsZXQgdD1bXTtyZXR1cm4gZS5sZW5ndGgmJmVbMF0uanNvbl9wYXRocy5mb3JFYWNoKHI9PntsZXQgbj17ZmllbGRzOltdfTtlLmZvckVhY2goZT0+e24uZmllbGRzLnB1c2goe2ZpZWxkX2lkOmUuZmllbGRfaWQsanNvbl9wYXRoOiQ1MGVhYmJkOTA2MTgxMmRiJHZhciRiZXN0TWF0Y2gocixlLmpzb25fcGF0aHMpfSl9KSx0LnB1c2gobil9KSx0fWZ1bmN0aW9uICQ3MzQzNzZiZmJhYWE4YjcxJGV4cG9ydCQyYzY3MTBkMGY1N2E2NDk3KGUsdCxyLG4saSxhKXtsZXQgbz1bXSxzPWZ1bmN0aW9uKGUsdCl7bGV0IHI9JDczNDM3NmJmYmFhYThiNzEkdmFyJGdldEZpZWxkQnlJZCh0LGkpO3ImJihyLmZpZWxkX3ZhbHVlPWErXCIuXCIrZS5pdGVtX2lkLG8ucHVzaCh0KSl9O3JldHVybiByLmZvckVhY2gocj0+e2UuZm9yRWFjaChlPT57JDczNDM3NmJmYmFhYThiNzEkdmFyJGNvbXBhcmVUd29JdGVtc0J5RmllbGRJZChlLHIsdCxuLHMpfSl9KSxvfWZ1bmN0aW9uICQ3MzQzNzZiZmJhYWE4YjcxJGV4cG9ydCRjZWM2NWRkZmZjODI1NzNlKGUsdCxyKXtsZXQgbj1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGUpKSxpPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodCkpLGE9W10sbz1mdW5jdGlvbihlLHQpe2EucHVzaCgkNzM0Mzc2YmZiYWFhOGI3MSR2YXIkbWVyZ2VUd29JdGVtcyhlLHQpKX0scz1mdW5jdGlvbihlKXthLnB1c2goZSl9LGw9ZnVuY3Rpb24oZSl7YS5wdXNoKGUpfSx1PWZ1bmN0aW9uKGUpe2EucHVzaChlKX07cmV0dXJuIHI/JDczNDM3NmJmYmFhYThiNzEkdmFyJGNvbXBhcmVJdGVtc0J5RmllbGRJZChuLGkscixvLHMsbCk6JDczNDM3NmJmYmFhYThiNzEkdmFyJGNvbXBhcmVJdGVtc0J5SXRlbUlkKG4saSxvLHMsbCx1KSxhfWZ1bmN0aW9uICQ3MzQzNzZiZmJhYWE4YjcxJGV4cG9ydCRiMGM2YjNhMTQyZGVjYjVhKGUsdCxyKXtsZXQgbj1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGUpKSxpPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodCkpLGE9e2lzX2l0ZW1zX2RpZmY6ITEsbmV3X3NyY19pdGVtczpbXSxkaWZmX3NyY19pdGVtczpbXSxzYW1lX2l0ZW1zOltdLHRyYXNoX3NyY19pdGVtczpbXX0sbz1mdW5jdGlvbihlKXthLmRpZmZfc3JjX2l0ZW1zLnB1c2goZSl9LHM9ZnVuY3Rpb24oZSl7YS5zYW1lX2l0ZW1zLnB1c2goZSl9LGw9ZnVuY3Rpb24oZSl7YS5uZXdfc3JjX2l0ZW1zLnB1c2goZSl9LHU9ZnVuY3Rpb24oZSl7YS50cmFzaF9zcmNfaXRlbXMucHVzaChlKX07cmV0dXJuIHImJiQ3MzQzNzZiZmJhYWE4YjcxJHZhciRjb21wYXJlSXRlbXNCeUZpZWxkSWQobixpLHIsbyxzLGwpLHJ8fCQ3MzQzNzZiZmJhYWE4YjcxJHZhciRjb21wYXJlSXRlbXNCeUl0ZW1JZChuLGksbyxzLGwsbnVsbCx1KSxhLmlzX2l0ZW1zX2RpZmY9YS5uZXdfc3JjX2l0ZW1zLmxlbmd0aD4wfHxhLmRpZmZfc3JjX2l0ZW1zLmxlbmd0aD4wLGF9ZnVuY3Rpb24gJDczNDM3NmJmYmFhYThiNzEkdmFyJG1lcmdlVHdvSXRlbXMoZSx0KXtyZXR1cm4gZS5maWVsZHMuZm9yRWFjaChlPT57bGV0IHI9JDczNDM3NmJmYmFhYThiNzEkdmFyJGdldEZpZWxkQnlJZCh0LGUuZmllbGRfaWQpO3I/KHIuZmllbGRfdmFsdWU9ZS5maWVsZF92YWx1ZSxlLmhpc3RvcnkmJnIuaGlzdG9yeSYmKHIuaGlzdG9yeT1lLmhpc3RvcnkuY29uY2F0KHIuaGlzdG9yeSkpKTp0LmZpZWxkcy5wdXNoKGUpfSksdH1mdW5jdGlvbiAkNzM0Mzc2YmZiYWFhOGI3MSR2YXIkY29tcGFyZUl0ZW1zQnlGaWVsZElkKGUsdCxyLG4saSxhKXtlLmZvckVhY2goZT0+e2xldCBvPSEwLHM9JDczNDM3NmJmYmFhYThiNzEkdmFyJGdldEZpZWxkQnlJZChlLHIpLmZpZWxkX3ZhbHVlO3QuZm9yRWFjaCh0PT57cz09JDczNDM3NmJmYmFhYThiNzEkdmFyJGdldEZpZWxkQnlJZCh0LHIpLmZpZWxkX3ZhbHVlJiYobz0hMSwkNzM0Mzc2YmZiYWFhOGI3MSR2YXIkY29tcGFyZVR3b0l0ZW1zKGUsdCxuLGkpKX0pLG8mJmEoZSl9KX1mdW5jdGlvbiAkNzM0Mzc2YmZiYWFhOGI3MSR2YXIkY29tcGFyZUl0ZW1zQnlJdGVtSWQoZSx0LHIsbixpLGEsbyl7bGV0IHM9bmV3ICQ3MzQzNzZiZmJhYWE4YjcxJHZhciRJdGVtc01hcHBlcih0KTtpZihlLmZvckVhY2goZT0+e2xldCBhPXMucHVsbEl0ZW1JbmRleChlLml0ZW1faWQpO3ZvaWQgMCE9YT8kNzM0Mzc2YmZiYWFhOGI3MSR2YXIkY29tcGFyZVR3b0l0ZW1zKGUsdFthXSxyLG4sbyk6KGUudHJhc2gmJm8oZSksZS50cmFzaHx8aShlKSl9KSxhKWZvcihsZXRbZSxyXW9mIE9iamVjdC5lbnRyaWVzKHMuaXRlbXNNYXApKWEodFtyXSl9ZnVuY3Rpb24gJDczNDM3NmJmYmFhYThiNzEkdmFyJGNvbXBhcmVUd29JdGVtcyhlLHQscixuLGkpe2xldCBhPSEwO2ZvcihsZXQgcj0wO3I8ZS5maWVsZHMubGVuZ3RoO3IrKyl7bGV0IG49JDczNDM3NmJmYmFhYThiNzEkdmFyJGdldEZpZWxkQnlJZCh0LGUuZmllbGRzW3JdLmZpZWxkX2lkKTtuP24uZmllbGRfdmFsdWUhPWUuZmllbGRzW3JdLmZpZWxkX3ZhbHVlJiYoYT1hJiYhMSk6YT1hJiYhMX1hJiYoZS50cmFzaCYmaShlLHQpLGUudHJhc2h8fG4oZSx0KSksYXx8KGUudHJhc2gmJmkoZSx0KSxlLnRyYXNofHxyKGUsdCkpfWZ1bmN0aW9uICQ3MzQzNzZiZmJhYWE4YjcxJHZhciRjb21wYXJlVHdvSXRlbXNCeUZpZWxkSWQoZSx0LHIsbixpKXskNzM0Mzc2YmZiYWFhOGI3MSR2YXIkZ2V0RmllbGRCeUlkKGUscikuZmllbGRfdmFsdWU9PSQ3MzQzNzZiZmJhYWE4YjcxJHZhciRnZXRGaWVsZEJ5SWQodCxuKS5maWVsZF92YWx1ZSYmaShlLHQpfWZ1bmN0aW9uICQ3MzQzNzZiZmJhYWE4YjcxJHZhciRnZXRGaWVsZEJ5SWQoZSx0KXtsZXQgcj1udWxsO2ZvcihsZXQgbj0wO248ZS5maWVsZHMubGVuZ3RoO24rKyl0PT1lLmZpZWxkc1tuXS5maWVsZF9pZCYmKHI9ZS5maWVsZHNbbl0pO3JldHVybiByfSEvKiEganNvbnBhdGggMS4xLjEgKi9mdW5jdGlvbihlKXskZTRkZDhkZTA4MWI3YjIyOSRleHBvcnRzPWUoKX0oZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4oZnVuY3Rpb24gZSh0LHIsbil7ZnVuY3Rpb24gaShvLHMpe2lmKCFyW29dKXtpZighdFtvXSl7dmFyIGw9dm9pZCAwO2lmKCFzJiZsKXJldHVybiBsKG8sITApO2lmKGEpcmV0dXJuIGEobywhMCk7dmFyIHU9RXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK28rXCInXCIpO3Rocm93IHUuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIix1fXZhciBjPXJbb109e2V4cG9ydHM6e319O3Rbb11bMF0uY2FsbChjLmV4cG9ydHMsZnVuY3Rpb24oZSl7cmV0dXJuIGkodFtvXVsxXVtlXXx8ZSl9LGMsYy5leHBvcnRzLGUsdCxyLG4pfXJldHVybiByW29dLmV4cG9ydHN9Zm9yKHZhciBhPXZvaWQgMCxvPTA7bzxuLmxlbmd0aDtvKyspaShuW29dKTtyZXR1cm4gaX0pKHtcIi4vYWVzcHJpbVwiOltmdW5jdGlvbih0LHIsbil7IWZ1bmN0aW9uKHQscil7XCJmdW5jdGlvblwiPT10eXBlb2YgZSYmZS5hbWQ/ZShbXCJleHBvcnRzXCJdLHIpOnIodm9pZCAwIT09bj9uOnQuZXNwcmltYT17fSl9KHRoaXMsZnVuY3Rpb24oZSl7dmFyIHQscixuLGksYSxvLHMsbCx1LGMscCxkLGgsZixtLGcseSxfO2Z1bmN0aW9uIHYoZSx0KXtpZighZSl0aHJvdyBFcnJvcihcIkFTU0VSVDogXCIrdCl9ZnVuY3Rpb24gYihlKXtyZXR1cm4gZT49NDgmJmU8PTU3fWZ1bmN0aW9uIHcoZSl7cmV0dXJuXCIwMTIzNDU2Nzg5YWJjZGVmQUJDREVGXCIuaW5kZXhPZihlKT49MH1mdW5jdGlvbiBTKGUpe3JldHVyblwiMDEyMzQ1NjdcIi5pbmRleE9mKGUpPj0wfWZ1bmN0aW9uIEUoZSl7cmV0dXJuIDMyPT09ZXx8OT09PWV8fDExPT09ZXx8MTI9PT1lfHwxNjA9PT1lfHxlPj01NzYwJiZbNTc2MCw2MTU4LDgxOTIsODE5Myw4MTk0LDgxOTUsODE5Niw4MTk3LDgxOTgsODE5OSw4MjAwLDgyMDEsODIwMiw4MjM5LDgyODcsMTIyODgsNjUyNzldLmluZGV4T2YoZSk+PTB9ZnVuY3Rpb24gQShlKXtyZXR1cm4gMTA9PT1lfHwxMz09PWV8fDgyMzI9PT1lfHw4MjMzPT09ZX1mdW5jdGlvbiB4KGUpe3JldHVybiA2ND09ZXx8MzY9PT1lfHw5NT09PWV8fGU+PTY1JiZlPD05MHx8ZT49OTcmJmU8PTEyMnx8OTI9PT1lfHxlPj0xMjgmJnMuTm9uQXNjaWlJZGVudGlmaWVyU3RhcnQudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKGUpKX1mdW5jdGlvbiBrKGUpe3JldHVybiAzNj09PWV8fDk1PT09ZXx8ZT49NjUmJmU8PTkwfHxlPj05NyYmZTw9MTIyfHxlPj00OCYmZTw9NTd8fDkyPT09ZXx8ZT49MTI4JiZzLk5vbkFzY2lpSWRlbnRpZmllclBhcnQudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKGUpKX1mdW5jdGlvbiBJKGUpe3N3aXRjaChlKXtjYXNlXCJjbGFzc1wiOmNhc2VcImVudW1cIjpjYXNlXCJleHBvcnRcIjpjYXNlXCJleHRlbmRzXCI6Y2FzZVwiaW1wb3J0XCI6Y2FzZVwic3VwZXJcIjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBPKGUpe3N3aXRjaChlKXtjYXNlXCJpbXBsZW1lbnRzXCI6Y2FzZVwiaW50ZXJmYWNlXCI6Y2FzZVwicGFja2FnZVwiOmNhc2VcInByaXZhdGVcIjpjYXNlXCJwcm90ZWN0ZWRcIjpjYXNlXCJwdWJsaWNcIjpjYXNlXCJzdGF0aWNcIjpjYXNlXCJ5aWVsZFwiOmNhc2VcImxldFwiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIGooZSl7cmV0dXJuXCJldmFsXCI9PT1lfHxcImFyZ3VtZW50c1wiPT09ZX1mdW5jdGlvbiBUKGUpe2lmKGMmJk8oZSkpcmV0dXJuITA7c3dpdGNoKGUubGVuZ3RoKXtjYXNlIDI6cmV0dXJuXCJpZlwiPT09ZXx8XCJpblwiPT09ZXx8XCJkb1wiPT09ZTtjYXNlIDM6cmV0dXJuXCJ2YXJcIj09PWV8fFwiZm9yXCI9PT1lfHxcIm5ld1wiPT09ZXx8XCJ0cnlcIj09PWV8fFwibGV0XCI9PT1lO2Nhc2UgNDpyZXR1cm5cInRoaXNcIj09PWV8fFwiZWxzZVwiPT09ZXx8XCJjYXNlXCI9PT1lfHxcInZvaWRcIj09PWV8fFwid2l0aFwiPT09ZXx8XCJlbnVtXCI9PT1lO2Nhc2UgNTpyZXR1cm5cIndoaWxlXCI9PT1lfHxcImJyZWFrXCI9PT1lfHxcImNhdGNoXCI9PT1lfHxcInRocm93XCI9PT1lfHxcImNvbnN0XCI9PT1lfHxcInlpZWxkXCI9PT1lfHxcImNsYXNzXCI9PT1lfHxcInN1cGVyXCI9PT1lO2Nhc2UgNjpyZXR1cm5cInJldHVyblwiPT09ZXx8XCJ0eXBlb2ZcIj09PWV8fFwiZGVsZXRlXCI9PT1lfHxcInN3aXRjaFwiPT09ZXx8XCJleHBvcnRcIj09PWV8fFwiaW1wb3J0XCI9PT1lO2Nhc2UgNzpyZXR1cm5cImRlZmF1bHRcIj09PWV8fFwiZmluYWxseVwiPT09ZXx8XCJleHRlbmRzXCI9PT1lO2Nhc2UgODpyZXR1cm5cImZ1bmN0aW9uXCI9PT1lfHxcImNvbnRpbnVlXCI9PT1lfHxcImRlYnVnZ2VyXCI9PT1lO2Nhc2UgMTA6cmV0dXJuXCJpbnN0YW5jZW9mXCI9PT1lO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIFAoZSx0LHIsbixpKXt2YXIgYTt2KFwibnVtYmVyXCI9PXR5cGVvZiByLFwiQ29tbWVudCBtdXN0IGhhdmUgdmFsaWQgcG9zaXRpb25cIiksISh5Lmxhc3RDb21tZW50U3RhcnQ+PXIpJiYoeS5sYXN0Q29tbWVudFN0YXJ0PXIsYT17dHlwZTplLHZhbHVlOnR9LF8ucmFuZ2UmJihhLnJhbmdlPVtyLG5dKSxfLmxvYyYmKGEubG9jPWkpLF8uY29tbWVudHMucHVzaChhKSxfLmF0dGFjaENvbW1lbnQmJihfLmxlYWRpbmdDb21tZW50cy5wdXNoKGEpLF8udHJhaWxpbmdDb21tZW50cy5wdXNoKGEpKSl9ZnVuY3Rpb24gQyhlKXt2YXIgdCxyLG4saTtmb3IodD1wLWUscj17c3RhcnQ6e2xpbmU6ZCxjb2x1bW46cC1oLWV9fTtwPGY7KWlmKG49dS5jaGFyQ29kZUF0KHApLCsrcCxBKG4pKXtfLmNvbW1lbnRzJiYoaT11LnNsaWNlKHQrZSxwLTEpLHIuZW5kPXtsaW5lOmQsY29sdW1uOnAtaC0xfSxQKFwiTGluZVwiLGksdCxwLTEscikpLDEzPT09biYmMTA9PT11LmNoYXJDb2RlQXQocCkmJisrcCwrK2QsaD1wO3JldHVybn1fLmNvbW1lbnRzJiYoaT11LnNsaWNlKHQrZSxwKSxyLmVuZD17bGluZTpkLGNvbHVtbjpwLWh9LFAoXCJMaW5lXCIsaSx0LHAscikpfWZ1bmN0aW9uIE4oKXt2YXIgZSx0LHIsbjtmb3IoXy5jb21tZW50cyYmKGU9cC0yLHQ9e3N0YXJ0OntsaW5lOmQsY29sdW1uOnAtaC0yfX0pO3A8ZjspaWYoQShyPXUuY2hhckNvZGVBdChwKSkpMTM9PT1yJiYxMD09PXUuY2hhckNvZGVBdChwKzEpJiYrK3AsKytkLGg9KytwLHA+PWYmJmVpKHt9LG8uVW5leHBlY3RlZFRva2VuLFwiSUxMRUdBTFwiKTtlbHNlIGlmKDQyPT09cil7aWYoNDc9PT11LmNoYXJDb2RlQXQocCsxKSl7KytwLCsrcCxfLmNvbW1lbnRzJiYobj11LnNsaWNlKGUrMixwLTIpLHQuZW5kPXtsaW5lOmQsY29sdW1uOnAtaH0sUChcIkJsb2NrXCIsbixlLHAsdCkpO3JldHVybn0rK3B9ZWxzZSsrcDtlaSh7fSxvLlVuZXhwZWN0ZWRUb2tlbixcIklMTEVHQUxcIil9ZnVuY3Rpb24gUigpe3ZhciBlLHQ7Zm9yKHQ9MD09PXA7cDxmOylpZihFKGU9dS5jaGFyQ29kZUF0KHApKSkrK3A7ZWxzZSBpZihBKGUpKSsrcCwxMz09PWUmJjEwPT09dS5jaGFyQ29kZUF0KHApJiYrK3AsKytkLGg9cCx0PSEwO2Vsc2UgaWYoNDc9PT1lKXtpZig0Nz09PShlPXUuY2hhckNvZGVBdChwKzEpKSkrK3AsKytwLEMoMiksdD0hMDtlbHNlIGlmKDQyPT09ZSkrK3AsKytwLE4oKTtlbHNlIGJyZWFrfWVsc2UgaWYodCYmNDU9PT1lKXtpZig0NT09PXUuY2hhckNvZGVBdChwKzEpJiY2Mj09PXUuY2hhckNvZGVBdChwKzIpKXArPTMsQygzKTtlbHNlIGJyZWFrfWVsc2UgaWYoNjA9PT1lKXtpZihcIiEtLVwiPT09dS5zbGljZShwKzEscCs0KSkrK3AsKytwLCsrcCwrK3AsQyg0KTtlbHNlIGJyZWFrfWVsc2UgYnJlYWt9ZnVuY3Rpb24gTShlKXt2YXIgdCxyLG4saT0wO2Zvcih0PTAscj1cInVcIj09PWU/NDoyO3Q8cjsrK3Qpe2lmKCEocDxmJiZ3KHVbcF0pKSlyZXR1cm5cIlwiO249dVtwKytdLGk9MTYqaStcIjAxMjM0NTY3ODlhYmNkZWZcIi5pbmRleE9mKG4udG9Mb3dlckNhc2UoKSl9cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoaSl9ZnVuY3Rpb24gRigpe3ZhciBlLHQ7Zm9yKHQ9U3RyaW5nLmZyb21DaGFyQ29kZShlPXUuY2hhckNvZGVBdChwKyspKSw5Mj09PWUmJigxMTchPT11LmNoYXJDb2RlQXQocCkmJmVpKHt9LG8uVW5leHBlY3RlZFRva2VuLFwiSUxMRUdBTFwiKSwrK3AsKGU9TShcInVcIikpJiZcIlxcXFxcIiE9PWUmJngoZS5jaGFyQ29kZUF0KDApKXx8ZWkoe30sby5VbmV4cGVjdGVkVG9rZW4sXCJJTExFR0FMXCIpLHQ9ZSk7cDxmJiZrKGU9dS5jaGFyQ29kZUF0KHApKTspKytwLHQrPVN0cmluZy5mcm9tQ2hhckNvZGUoZSksOTI9PT1lJiYodD10LnN1YnN0cigwLHQubGVuZ3RoLTEpLDExNyE9PXUuY2hhckNvZGVBdChwKSYmZWkoe30sby5VbmV4cGVjdGVkVG9rZW4sXCJJTExFR0FMXCIpLCsrcCwoZT1NKFwidVwiKSkmJlwiXFxcXFwiIT09ZSYmayhlLmNoYXJDb2RlQXQoMCkpfHxlaSh7fSxvLlVuZXhwZWN0ZWRUb2tlbixcIklMTEVHQUxcIiksdCs9ZSk7cmV0dXJuIHR9ZnVuY3Rpb24gTCgpe3ZhciBlLHQ7Zm9yKGU9cCsrO3A8Zjspe2lmKDkyPT09KHQ9dS5jaGFyQ29kZUF0KHApKSlyZXR1cm4gcD1lLEYoKTtpZihrKHQpKSsrcDtlbHNlIGJyZWFrfXJldHVybiB1LnNsaWNlKGUscCl9ZnVuY3Rpb24gRCgpe3ZhciBlLHIsbjtyZXR1cm4gZT1wLHt0eXBlOm49MT09PShyPTkyPT09dS5jaGFyQ29kZUF0KHApP0YoKTpMKCkpLmxlbmd0aD90LklkZW50aWZpZXI6VChyKT90LktleXdvcmQ6XCJudWxsXCI9PT1yP3QuTnVsbExpdGVyYWw6XCJ0cnVlXCI9PT1yfHxcImZhbHNlXCI9PT1yP3QuQm9vbGVhbkxpdGVyYWw6dC5JZGVudGlmaWVyLHZhbHVlOnIsbGluZU51bWJlcjpkLGxpbmVTdGFydDpoLHN0YXJ0OmUsZW5kOnB9fWZ1bmN0aW9uIHEoKXt2YXIgZSxyLG4saSxhPXAscz11LmNoYXJDb2RlQXQocCksbD11W3BdO3N3aXRjaChzKXtjYXNlIDQ2OmNhc2UgNDA6Y2FzZSA0MTpjYXNlIDU5OmNhc2UgNDQ6Y2FzZSAxMjM6Y2FzZSAxMjU6Y2FzZSA5MTpjYXNlIDkzOmNhc2UgNTg6Y2FzZSA2MzpjYXNlIDEyNjpyZXR1cm4rK3AsXy50b2tlbml6ZSYmKDQwPT09cz9fLm9wZW5QYXJlblRva2VuPV8udG9rZW5zLmxlbmd0aDoxMjM9PT1zJiYoXy5vcGVuQ3VybHlUb2tlbj1fLnRva2Vucy5sZW5ndGgpKSx7dHlwZTp0LlB1bmN0dWF0b3IsdmFsdWU6U3RyaW5nLmZyb21DaGFyQ29kZShzKSxsaW5lTnVtYmVyOmQsbGluZVN0YXJ0Omgsc3RhcnQ6YSxlbmQ6cH07ZGVmYXVsdDppZig2MT09PShlPXUuY2hhckNvZGVBdChwKzEpKSlzd2l0Y2gocyl7Y2FzZSA0MzpjYXNlIDQ1OmNhc2UgNDc6Y2FzZSA2MDpjYXNlIDYyOmNhc2UgOTQ6Y2FzZSAxMjQ6Y2FzZSAzNzpjYXNlIDM4OmNhc2UgNDI6cmV0dXJuIHArPTIse3R5cGU6dC5QdW5jdHVhdG9yLHZhbHVlOlN0cmluZy5mcm9tQ2hhckNvZGUocykrU3RyaW5nLmZyb21DaGFyQ29kZShlKSxsaW5lTnVtYmVyOmQsbGluZVN0YXJ0Omgsc3RhcnQ6YSxlbmQ6cH07Y2FzZSAzMzpjYXNlIDYxOnJldHVybiBwKz0yLDYxPT09dS5jaGFyQ29kZUF0KHApJiYrK3Ase3R5cGU6dC5QdW5jdHVhdG9yLHZhbHVlOnUuc2xpY2UoYSxwKSxsaW5lTnVtYmVyOmQsbGluZVN0YXJ0Omgsc3RhcnQ6YSxlbmQ6cH19fXJldHVyblwiPj4+PVwiPT09KGk9dS5zdWJzdHIocCw0KSk/KHArPTQse3R5cGU6dC5QdW5jdHVhdG9yLHZhbHVlOmksbGluZU51bWJlcjpkLGxpbmVTdGFydDpoLHN0YXJ0OmEsZW5kOnB9KTpcIj4+PlwiPT09KG49aS5zdWJzdHIoMCwzKSl8fFwiPDw9XCI9PT1ufHxcIj4+PVwiPT09bj8ocCs9Myx7dHlwZTp0LlB1bmN0dWF0b3IsdmFsdWU6bixsaW5lTnVtYmVyOmQsbGluZVN0YXJ0Omgsc3RhcnQ6YSxlbmQ6cH0pOmw9PT0ocj1uLnN1YnN0cigwLDIpKVsxXSYmXCIrLTw+JnxcIi5pbmRleE9mKGwpPj0wfHxcIj0+XCI9PT1yPyhwKz0yLHt0eXBlOnQuUHVuY3R1YXRvcix2YWx1ZTpyLGxpbmVOdW1iZXI6ZCxsaW5lU3RhcnQ6aCxzdGFydDphLGVuZDpwfSk6XCI8Pj0hKy0qJSZ8Xi9cIi5pbmRleE9mKGwpPj0wPygrK3Ase3R5cGU6dC5QdW5jdHVhdG9yLHZhbHVlOmwsbGluZU51bWJlcjpkLGxpbmVTdGFydDpoLHN0YXJ0OmEsZW5kOnB9KTp2b2lkIGVpKHt9LG8uVW5leHBlY3RlZFRva2VuLFwiSUxMRUdBTFwiKX1mdW5jdGlvbiBCKGUpe2Zvcih2YXIgcj1cIlwiO3A8ZiYmdyh1W3BdKTspcis9dVtwKytdO3JldHVybiAwPT09ci5sZW5ndGgmJmVpKHt9LG8uVW5leHBlY3RlZFRva2VuLFwiSUxMRUdBTFwiKSx4KHUuY2hhckNvZGVBdChwKSkmJmVpKHt9LG8uVW5leHBlY3RlZFRva2VuLFwiSUxMRUdBTFwiKSx7dHlwZTp0Lk51bWVyaWNMaXRlcmFsLHZhbHVlOnBhcnNlSW50KFwiMHhcIityLDE2KSxsaW5lTnVtYmVyOmQsbGluZVN0YXJ0Omgsc3RhcnQ6ZSxlbmQ6cH19ZnVuY3Rpb24gVShlKXtmb3IodmFyIHI9XCIwXCIrdVtwKytdO3A8ZiYmUyh1W3BdKTspcis9dVtwKytdO3JldHVybih4KHUuY2hhckNvZGVBdChwKSl8fGIodS5jaGFyQ29kZUF0KHApKSkmJmVpKHt9LG8uVW5leHBlY3RlZFRva2VuLFwiSUxMRUdBTFwiKSx7dHlwZTp0Lk51bWVyaWNMaXRlcmFsLHZhbHVlOnBhcnNlSW50KHIsOCksb2N0YWw6ITAsbGluZU51bWJlcjpkLGxpbmVTdGFydDpoLHN0YXJ0OmUsZW5kOnB9fWZ1bmN0aW9uICQoKXt2YXIgZSxyLG47aWYodihiKChuPXVbcF0pLmNoYXJDb2RlQXQoMCkpfHxcIi5cIj09PW4sXCJOdW1lcmljIGxpdGVyYWwgbXVzdCBzdGFydCB3aXRoIGEgZGVjaW1hbCBkaWdpdCBvciBhIGRlY2ltYWwgcG9pbnRcIikscj1wLGU9XCJcIixcIi5cIiE9PW4pe2lmKGU9dVtwKytdLG49dVtwXSxcIjBcIj09PWUpe2lmKFwieFwiPT09bnx8XCJYXCI9PT1uKXJldHVybisrcCxCKHIpO2lmKFMobikpcmV0dXJuIFUocik7biYmYihuLmNoYXJDb2RlQXQoMCkpJiZlaSh7fSxvLlVuZXhwZWN0ZWRUb2tlbixcIklMTEVHQUxcIil9Zm9yKDtiKHUuY2hhckNvZGVBdChwKSk7KWUrPXVbcCsrXTtuPXVbcF19aWYoXCIuXCI9PT1uKXtmb3IoZSs9dVtwKytdO2IodS5jaGFyQ29kZUF0KHApKTspZSs9dVtwKytdO249dVtwXX1pZihcImVcIj09PW58fFwiRVwiPT09bil7aWYoZSs9dVtwKytdLChcIitcIj09PShuPXVbcF0pfHxcIi1cIj09PW4pJiYoZSs9dVtwKytdKSxiKHUuY2hhckNvZGVBdChwKSkpZm9yKDtiKHUuY2hhckNvZGVBdChwKSk7KWUrPXVbcCsrXTtlbHNlIGVpKHt9LG8uVW5leHBlY3RlZFRva2VuLFwiSUxMRUdBTFwiKX1yZXR1cm4geCh1LmNoYXJDb2RlQXQocCkpJiZlaSh7fSxvLlVuZXhwZWN0ZWRUb2tlbixcIklMTEVHQUxcIikse3R5cGU6dC5OdW1lcmljTGl0ZXJhbCx2YWx1ZTpwYXJzZUZsb2F0KGUpLGxpbmVOdW1iZXI6ZCxsaW5lU3RhcnQ6aCxzdGFydDpyLGVuZDpwfX1mdW5jdGlvbiBXKCl7dmFyIGUscixuLGksYSxzLGwsYyxtPVwiXCIsZz0hMTtmb3IobD1kLGM9aCx2KFwiJ1wiPT09KGU9dVtwXSl8fCdcIic9PT1lLFwiU3RyaW5nIGxpdGVyYWwgbXVzdCBzdGFydHMgd2l0aCBhIHF1b3RlXCIpLHI9cCwrK3A7cDxmOyl7aWYoKG49dVtwKytdKT09PWUpe2U9XCJcIjticmVha31pZihcIlxcXFxcIj09PW4pe2lmKChuPXVbcCsrXSkmJkEobi5jaGFyQ29kZUF0KDApKSkrK2QsXCJcXHJcIj09PW4mJlwiXFxuXCI9PT11W3BdJiYrK3AsaD1wO2Vsc2Ugc3dpdGNoKG4pe2Nhc2VcInVcIjpjYXNlXCJ4XCI6cz1wLChhPU0obikpP20rPWE6KHA9cyxtKz1uKTticmVhaztjYXNlXCJuXCI6bSs9XCJcXG5cIjticmVhaztjYXNlXCJyXCI6bSs9XCJcXHJcIjticmVhaztjYXNlXCJ0XCI6bSs9XCJcdFwiO2JyZWFrO2Nhc2VcImJcIjptKz1cIlxcYlwiO2JyZWFrO2Nhc2VcImZcIjptKz1cIlxcZlwiO2JyZWFrO2Nhc2VcInZcIjptKz1cIlxcdlwiO2JyZWFrO2RlZmF1bHQ6UyhuKT8oMCE9PShpPVwiMDEyMzQ1NjdcIi5pbmRleE9mKG4pKSYmKGc9ITApLHA8ZiYmUyh1W3BdKSYmKGc9ITAsaT04KmkrXCIwMTIzNDU2N1wiLmluZGV4T2YodVtwKytdKSxcIjAxMjNcIi5pbmRleE9mKG4pPj0wJiZwPGYmJlModVtwXSkmJihpPTgqaStcIjAxMjM0NTY3XCIuaW5kZXhPZih1W3ArK10pKSksbSs9U3RyaW5nLmZyb21DaGFyQ29kZShpKSk6bSs9bn19ZWxzZSBpZihBKG4uY2hhckNvZGVBdCgwKSkpYnJlYWs7ZWxzZSBtKz1ufXJldHVyblwiXCIhPT1lJiZlaSh7fSxvLlVuZXhwZWN0ZWRUb2tlbixcIklMTEVHQUxcIikse3R5cGU6dC5TdHJpbmdMaXRlcmFsLHZhbHVlOm0sb2N0YWw6ZyxzdGFydExpbmVOdW1iZXI6bCxzdGFydExpbmVTdGFydDpjLGxpbmVOdW1iZXI6ZCxsaW5lU3RhcnQ6aCxzdGFydDpyLGVuZDpwfX1mdW5jdGlvbiBHKGUsdCl7dmFyIHI7dHJ5e3I9bmV3IFJlZ0V4cChlLHQpfWNhdGNoKGUpe2VpKHt9LG8uSW52YWxpZFJlZ0V4cCl9cmV0dXJuIHJ9ZnVuY3Rpb24gSCgpe3ZhciBlLHQscixuO2Zvcih2KFwiL1wiPT09KGU9dVtwXSksXCJSZWd1bGFyIGV4cHJlc3Npb24gbGl0ZXJhbCBtdXN0IHN0YXJ0IHdpdGggYSBzbGFzaFwiKSx0PXVbcCsrXSxyPSExLG49ITE7cDxmOylpZih0Kz1lPXVbcCsrXSxcIlxcXFxcIj09PWUpQSgoZT11W3ArK10pLmNoYXJDb2RlQXQoMCkpJiZlaSh7fSxvLlVudGVybWluYXRlZFJlZ0V4cCksdCs9ZTtlbHNlIGlmKEEoZS5jaGFyQ29kZUF0KDApKSllaSh7fSxvLlVudGVybWluYXRlZFJlZ0V4cCk7ZWxzZSBpZihyKVwiXVwiPT09ZSYmKHI9ITEpO2Vsc2V7aWYoXCIvXCI9PT1lKXtuPSEwO2JyZWFrfVwiW1wiPT09ZSYmKHI9ITApfXJldHVybiBufHxlaSh7fSxvLlVudGVybWluYXRlZFJlZ0V4cCkse3ZhbHVlOnQuc3Vic3RyKDEsdC5sZW5ndGgtMiksbGl0ZXJhbDp0fX1mdW5jdGlvbiBWKCl7dmFyIGUsdCxyLG47Zm9yKHQ9XCJcIixyPVwiXCI7cDxmJiZrKChlPXVbcF0pLmNoYXJDb2RlQXQoMCkpOylpZigrK3AsXCJcXFxcXCI9PT1lJiZwPGYpe2lmKFwidVwiPT09KGU9dVtwXSkpe2lmKG49KytwLGU9TShcInVcIikpZm9yKHIrPWUsdCs9XCJcXFxcdVwiO248cDsrK24pdCs9dVtuXTtlbHNlIHA9bixyKz1cInVcIix0Kz1cIlxcXFx1XCI7ZWEoe30sby5VbmV4cGVjdGVkVG9rZW4sXCJJTExFR0FMXCIpfWVsc2UgdCs9XCJcXFxcXCIsZWEoe30sby5VbmV4cGVjdGVkVG9rZW4sXCJJTExFR0FMXCIpfWVsc2Ugcis9ZSx0Kz1lO3JldHVybnt2YWx1ZTpyLGxpdGVyYWw6dH19ZnVuY3Rpb24geigpe3ZhciBlLHIsbixpO3JldHVybihnPW51bGwsUigpLGU9cCxyPUgoKSxuPVYoKSxpPUcoci52YWx1ZSxuLnZhbHVlKSxfLnRva2VuaXplKT97dHlwZTp0LlJlZ3VsYXJFeHByZXNzaW9uLHZhbHVlOmksbGluZU51bWJlcjpkLGxpbmVTdGFydDpoLHN0YXJ0OmUsZW5kOnB9OntsaXRlcmFsOnIubGl0ZXJhbCtuLmxpdGVyYWwsdmFsdWU6aSxzdGFydDplLGVuZDpwfX1mdW5jdGlvbiBKKCl7dmFyIGUsdCxyLG47cmV0dXJuIFIoKSxlPXAsdD17c3RhcnQ6e2xpbmU6ZCxjb2x1bW46cC1ofX0scj16KCksdC5lbmQ9e2xpbmU6ZCxjb2x1bW46cC1ofSxfLnRva2VuaXplfHwoXy50b2tlbnMubGVuZ3RoPjAmJihuPV8udG9rZW5zW18udG9rZW5zLmxlbmd0aC0xXSkucmFuZ2VbMF09PT1lJiZcIlB1bmN0dWF0b3JcIj09PW4udHlwZSYmKFwiL1wiPT09bi52YWx1ZXx8XCIvPVwiPT09bi52YWx1ZSkmJl8udG9rZW5zLnBvcCgpLF8udG9rZW5zLnB1c2goe3R5cGU6XCJSZWd1bGFyRXhwcmVzc2lvblwiLHZhbHVlOnIubGl0ZXJhbCxyYW5nZTpbZSxwXSxsb2M6dH0pKSxyfWZ1bmN0aW9uIFEoZSl7cmV0dXJuIGUudHlwZT09PXQuSWRlbnRpZmllcnx8ZS50eXBlPT09dC5LZXl3b3JkfHxlLnR5cGU9PT10LkJvb2xlYW5MaXRlcmFsfHxlLnR5cGU9PT10Lk51bGxMaXRlcmFsfWZ1bmN0aW9uIEsoKXt2YXIgZSx0O2lmKCEoZT1fLnRva2Vuc1tfLnRva2Vucy5sZW5ndGgtMV0pKXJldHVybiBKKCk7aWYoXCJQdW5jdHVhdG9yXCI9PT1lLnR5cGUpe2lmKFwiXVwiPT09ZS52YWx1ZSlyZXR1cm4gcSgpO2lmKFwiKVwiPT09ZS52YWx1ZSlyZXR1cm4odD1fLnRva2Vuc1tfLm9wZW5QYXJlblRva2VuLTFdKSYmXCJLZXl3b3JkXCI9PT10LnR5cGUmJihcImlmXCI9PT10LnZhbHVlfHxcIndoaWxlXCI9PT10LnZhbHVlfHxcImZvclwiPT09dC52YWx1ZXx8XCJ3aXRoXCI9PT10LnZhbHVlKT9KKCk6cSgpO2lmKFwifVwiPT09ZS52YWx1ZSl7aWYoXy50b2tlbnNbXy5vcGVuQ3VybHlUb2tlbi0zXSYmXCJLZXl3b3JkXCI9PT1fLnRva2Vuc1tfLm9wZW5DdXJseVRva2VuLTNdLnR5cGUpe2lmKCEodD1fLnRva2Vuc1tfLm9wZW5DdXJseVRva2VuLTRdKSlyZXR1cm4gcSgpfWVsc2UgaWYoIV8udG9rZW5zW18ub3BlbkN1cmx5VG9rZW4tNF18fFwiS2V5d29yZFwiIT09Xy50b2tlbnNbXy5vcGVuQ3VybHlUb2tlbi00XS50eXBlKXJldHVybiBxKCk7ZWxzZSBpZighKHQ9Xy50b2tlbnNbXy5vcGVuQ3VybHlUb2tlbi01XSkpcmV0dXJuIEooKTtpZihuLmluZGV4T2YodC52YWx1ZSk+PTApcmV0dXJuIHEoKX1yZXR1cm4gSigpfXJldHVyblwiS2V5d29yZFwiPT09ZS50eXBlP0ooKTpxKCl9ZnVuY3Rpb24gWCgpe3ZhciBlO3JldHVybihSKCkscD49Zik/e3R5cGU6dC5FT0YsbGluZU51bWJlcjpkLGxpbmVTdGFydDpoLHN0YXJ0OnAsZW5kOnB9OngoZT11LmNoYXJDb2RlQXQocCkpP0QoKTo0MD09PWV8fDQxPT09ZXx8NTk9PT1lP3EoKTozOT09PWV8fDM0PT09ZT9XKCk6NDY9PT1lP2IodS5jaGFyQ29kZUF0KHArMSkpPyQoKTpxKCk6YihlKT8kKCk6Xy50b2tlbml6ZSYmNDc9PT1lP0soKTpxKCl9ZnVuY3Rpb24gWSgpe3ZhciBlLG4saTtyZXR1cm4gUigpLGU9e3N0YXJ0OntsaW5lOmQsY29sdW1uOnAtaH19LG49WCgpLGUuZW5kPXtsaW5lOmQsY29sdW1uOnAtaH0sbi50eXBlIT09dC5FT0YmJihpPXUuc2xpY2Uobi5zdGFydCxuLmVuZCksXy50b2tlbnMucHVzaCh7dHlwZTpyW24udHlwZV0sdmFsdWU6aSxyYW5nZTpbbi5zdGFydCxuLmVuZF0sbG9jOmV9KSksbn1mdW5jdGlvbiBaKCl7dmFyIGU7cmV0dXJuIHA9KGU9ZykuZW5kLGQ9ZS5saW5lTnVtYmVyLGg9ZS5saW5lU3RhcnQsZz12b2lkIDAhPT1fLnRva2Vucz9ZKCk6WCgpLHA9ZS5lbmQsZD1lLmxpbmVOdW1iZXIsaD1lLmxpbmVTdGFydCxlfWZ1bmN0aW9uIGVlKCl7dmFyIGUsdCxyO2U9cCx0PWQscj1oLGc9dm9pZCAwIT09Xy50b2tlbnM/WSgpOlgoKSxwPWUsZD10LGg9cn1mdW5jdGlvbiBldChlLHQpe3RoaXMubGluZT1lLHRoaXMuY29sdW1uPXR9ZnVuY3Rpb24gZXIoZSx0LHIsbil7dGhpcy5zdGFydD1uZXcgZXQoZSx0KSx0aGlzLmVuZD1uZXcgZXQocixuKX1mdW5jdGlvbiBlbigpe3ZhciBlLHQscixuO3JldHVybiBlPXAsdD1kLHI9aCxSKCksbj1kIT09dCxwPWUsZD10LGg9cixufWZ1bmN0aW9uIGVpKGUsdCl7dmFyIHIsbj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMiksaT10LnJlcGxhY2UoLyUoXFxkKS9nLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHYodDxuLmxlbmd0aCxcIk1lc3NhZ2UgcmVmZXJlbmNlIG11c3QgYmUgaW4gcmFuZ2VcIiksblt0XX0pO3Rocm93XCJudW1iZXJcIj09dHlwZW9mIGUubGluZU51bWJlcj8oKHI9RXJyb3IoXCJMaW5lIFwiK2UubGluZU51bWJlcitcIjogXCIraSkpLmluZGV4PWUuc3RhcnQsci5saW5lTnVtYmVyPWUubGluZU51bWJlcixyLmNvbHVtbj1lLnN0YXJ0LWgrMSk6KChyPUVycm9yKFwiTGluZSBcIitkK1wiOiBcIitpKSkuaW5kZXg9cCxyLmxpbmVOdW1iZXI9ZCxyLmNvbHVtbj1wLWgrMSksci5kZXNjcmlwdGlvbj1pLHJ9ZnVuY3Rpb24gZWEoKXt0cnl7ZWkuYXBwbHkobnVsbCxhcmd1bWVudHMpfWNhdGNoKGUpe2lmKF8uZXJyb3JzKV8uZXJyb3JzLnB1c2goZSk7ZWxzZSB0aHJvdyBlfX1mdW5jdGlvbiBlbyhlKXtpZihlLnR5cGU9PT10LkVPRiYmZWkoZSxvLlVuZXhwZWN0ZWRFT1MpLGUudHlwZT09PXQuTnVtZXJpY0xpdGVyYWwmJmVpKGUsby5VbmV4cGVjdGVkTnVtYmVyKSxlLnR5cGU9PT10LlN0cmluZ0xpdGVyYWwmJmVpKGUsby5VbmV4cGVjdGVkU3RyaW5nKSxlLnR5cGU9PT10LklkZW50aWZpZXImJmVpKGUsby5VbmV4cGVjdGVkSWRlbnRpZmllciksZS50eXBlPT09dC5LZXl3b3JkKXtpZihJKGUudmFsdWUpKWVpKGUsby5VbmV4cGVjdGVkUmVzZXJ2ZWQpO2Vsc2UgaWYoYyYmTyhlLnZhbHVlKSl7ZWEoZSxvLlN0cmljdFJlc2VydmVkV29yZCk7cmV0dXJufWVpKGUsby5VbmV4cGVjdGVkVG9rZW4sZS52YWx1ZSl9ZWkoZSxvLlVuZXhwZWN0ZWRUb2tlbixlLnZhbHVlKX1mdW5jdGlvbiBlcyhlKXt2YXIgcj1aKCk7KHIudHlwZSE9PXQuUHVuY3R1YXRvcnx8ci52YWx1ZSE9PWUpJiZlbyhyKX1mdW5jdGlvbiBlbChlKXt2YXIgcj1aKCk7KHIudHlwZSE9PXQuS2V5d29yZHx8ci52YWx1ZSE9PWUpJiZlbyhyKX1mdW5jdGlvbiBldShlKXtyZXR1cm4gZy50eXBlPT09dC5QdW5jdHVhdG9yJiZnLnZhbHVlPT09ZX1mdW5jdGlvbiBlYyhlKXtyZXR1cm4gZy50eXBlPT09dC5LZXl3b3JkJiZnLnZhbHVlPT09ZX1mdW5jdGlvbiBlcCgpe3ZhciBlO3JldHVybiBnLnR5cGU9PT10LlB1bmN0dWF0b3ImJihcIj1cIj09PShlPWcudmFsdWUpfHxcIio9XCI9PT1lfHxcIi89XCI9PT1lfHxcIiU9XCI9PT1lfHxcIis9XCI9PT1lfHxcIi09XCI9PT1lfHxcIjw8PVwiPT09ZXx8XCI+Pj1cIj09PWV8fFwiPj4+PVwiPT09ZXx8XCImPVwiPT09ZXx8XCJePVwiPT09ZXx8XCJ8PVwiPT09ZSl9ZnVuY3Rpb24gZWQoKXt2YXIgZTtpZig1OT09PXUuY2hhckNvZGVBdChwKXx8ZXUoXCI7XCIpKXtaKCk7cmV0dXJufWU9ZCxSKCksZCE9PWV8fGcudHlwZT09PXQuRU9GfHxldShcIn1cIil8fGVvKGcpfWZ1bmN0aW9uIGVoKGUpe3JldHVybiBlLnR5cGU9PT1pLklkZW50aWZpZXJ8fGUudHlwZT09PWkuTWVtYmVyRXhwcmVzc2lvbn1mdW5jdGlvbiBlZigpe3ZhciBlLHQ9W107Zm9yKGU9ZyxlcyhcIltcIik7IWV1KFwiXVwiKTspZXUoXCIsXCIpPyhaKCksdC5wdXNoKG51bGwpKToodC5wdXNoKGVOKCkpLGV1KFwiXVwiKXx8ZXMoXCIsXCIpKTtyZXR1cm4gWigpLG0ubWFya0VuZChtLmNyZWF0ZUFycmF5RXhwcmVzc2lvbih0KSxlKX1mdW5jdGlvbiBlbShlLHQpe3ZhciByLG4saTtyZXR1cm4gcj1jLGk9ZyxuPWU2KCksdCYmYyYmaihlWzBdLm5hbWUpJiZlYSh0LG8uU3RyaWN0UGFyYW1OYW1lKSxjPXIsbS5tYXJrRW5kKG0uY3JlYXRlRnVuY3Rpb25FeHByZXNzaW9uKG51bGwsZSxbXSxuKSxpKX1mdW5jdGlvbiBlZygpe3ZhciBlLHI7cmV0dXJuKHI9ZywoZT1aKCkpLnR5cGU9PT10LlN0cmluZ0xpdGVyYWx8fGUudHlwZT09PXQuTnVtZXJpY0xpdGVyYWwpPyhjJiZlLm9jdGFsJiZlYShlLG8uU3RyaWN0T2N0YWxMaXRlcmFsKSxtLm1hcmtFbmQobS5jcmVhdGVMaXRlcmFsKGUpLHIpKTptLm1hcmtFbmQobS5jcmVhdGVJZGVudGlmaWVyKGUudmFsdWUpLHIpfWZ1bmN0aW9uIGV5KCl7dmFyIGUscixuLGksYSxzO3JldHVybihlPWcscz1nLGUudHlwZT09PXQuSWRlbnRpZmllcik/KG49ZWcoKSxcImdldFwiIT09ZS52YWx1ZXx8ZXUoXCI6XCIpKT9cInNldFwiIT09ZS52YWx1ZXx8ZXUoXCI6XCIpPyhlcyhcIjpcIiksaT1lTigpLG0ubWFya0VuZChtLmNyZWF0ZVByb3BlcnR5KFwiaW5pdFwiLG4saSkscykpOihyPWVnKCksZXMoXCIoXCIpLChlPWcpLnR5cGUhPT10LklkZW50aWZpZXI/KGVzKFwiKVwiKSxlYShlLG8uVW5leHBlY3RlZFRva2VuLGUudmFsdWUpLGk9ZW0oW10pKTooYT1bZUwoKV0sZXMoXCIpXCIpLGk9ZW0oYSxlKSksbS5tYXJrRW5kKG0uY3JlYXRlUHJvcGVydHkoXCJzZXRcIixyLGkpLHMpKToocj1lZygpLGVzKFwiKFwiKSxlcyhcIilcIiksaT1lbShbXSksbS5tYXJrRW5kKG0uY3JlYXRlUHJvcGVydHkoXCJnZXRcIixyLGkpLHMpKTplLnR5cGUhPT10LkVPRiYmZS50eXBlIT09dC5QdW5jdHVhdG9yPyhyPWVnKCksZXMoXCI6XCIpLGk9ZU4oKSxtLm1hcmtFbmQobS5jcmVhdGVQcm9wZXJ0eShcImluaXRcIixyLGkpLHMpKTp2b2lkIGVvKGUpfWZ1bmN0aW9uIGVfKCl7dmFyIGUsdCxyLG4scyxsPVtdLHU9e30scD1TdHJpbmc7Zm9yKHM9ZyxlcyhcIntcIik7IWV1KFwifVwiKTspdD0oZT1leSgpKS5rZXkudHlwZT09PWkuSWRlbnRpZmllcj9lLmtleS5uYW1lOnAoZS5rZXkudmFsdWUpLG49XCJpbml0XCI9PT1lLmtpbmQ/YS5EYXRhOlwiZ2V0XCI9PT1lLmtpbmQ/YS5HZXQ6YS5TZXQscj1cIiRcIit0LE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh1LHIpPyh1W3JdPT09YS5EYXRhP2MmJm49PT1hLkRhdGE/ZWEoe30sby5TdHJpY3REdXBsaWNhdGVQcm9wZXJ0eSk6biE9PWEuRGF0YSYmZWEoe30sby5BY2Nlc3NvckRhdGFQcm9wZXJ0eSk6bj09PWEuRGF0YT9lYSh7fSxvLkFjY2Vzc29yRGF0YVByb3BlcnR5KTp1W3JdJm4mJmVhKHt9LG8uQWNjZXNzb3JHZXRTZXQpLHVbcl18PW4pOnVbcl09bixsLnB1c2goZSksZXUoXCJ9XCIpfHxlcyhcIixcIik7cmV0dXJuIGVzKFwifVwiKSxtLm1hcmtFbmQobS5jcmVhdGVPYmplY3RFeHByZXNzaW9uKGwpLHMpfWZ1bmN0aW9uIGV2KCl7dmFyIGU7cmV0dXJuIGVzKFwiKFwiKSxlPWVSKCksZXMoXCIpXCIpLGV9ZnVuY3Rpb24gZWIoKXt2YXIgZSxyLG4saTtpZihldShcIihcIikpcmV0dXJuIGV2KCk7aWYoZXUoXCJbXCIpKXJldHVybiBlZigpO2lmKGV1KFwie1wiKSlyZXR1cm4gZV8oKTtpZihlPWcudHlwZSxpPWcsZT09PXQuSWRlbnRpZmllciluPW0uY3JlYXRlSWRlbnRpZmllcihaKCkudmFsdWUpO2Vsc2UgaWYoZT09PXQuU3RyaW5nTGl0ZXJhbHx8ZT09PXQuTnVtZXJpY0xpdGVyYWwpYyYmZy5vY3RhbCYmZWEoZyxvLlN0cmljdE9jdGFsTGl0ZXJhbCksbj1tLmNyZWF0ZUxpdGVyYWwoWigpKTtlbHNlIGlmKGU9PT10LktleXdvcmQpe2lmKGVjKFwiZnVuY3Rpb25cIikpcmV0dXJuIGU3KCk7ZWMoXCJ0aGlzXCIpPyhaKCksbj1tLmNyZWF0ZVRoaXNFeHByZXNzaW9uKCkpOmVvKFooKSl9ZWxzZSBlPT09dC5Cb29sZWFuTGl0ZXJhbD8oKHI9WigpKS52YWx1ZT1cInRydWVcIj09PXIudmFsdWUsbj1tLmNyZWF0ZUxpdGVyYWwocikpOmU9PT10Lk51bGxMaXRlcmFsPygocj1aKCkpLnZhbHVlPW51bGwsbj1tLmNyZWF0ZUxpdGVyYWwocikpOmV1KFwiL1wiKXx8ZXUoXCIvPVwiKT8obj12b2lkIDAhPT1fLnRva2Vucz9tLmNyZWF0ZUxpdGVyYWwoSigpKTptLmNyZWF0ZUxpdGVyYWwoeigpKSxlZSgpKTplbyhaKCkpO3JldHVybiBtLm1hcmtFbmQobixpKX1mdW5jdGlvbiBldygpe3ZhciBlPVtdO2lmKGVzKFwiKFwiKSwhZXUoXCIpXCIpKWZvcig7cDxmJiYoZS5wdXNoKGVOKCkpLCFldShcIilcIikpOyllcyhcIixcIik7cmV0dXJuIGVzKFwiKVwiKSxlfWZ1bmN0aW9uIGVTKCl7dmFyIGUsdDtyZXR1cm4gdD1nLFEoZT1aKCkpfHxlbyhlKSxtLm1hcmtFbmQobS5jcmVhdGVJZGVudGlmaWVyKGUudmFsdWUpLHQpfWZ1bmN0aW9uIGVFKCl7cmV0dXJuIGVzKFwiLlwiKSxlUygpfWZ1bmN0aW9uIGVBKCl7dmFyIGU7cmV0dXJuIGVzKFwiW1wiKSxlPWVSKCksZXMoXCJdXCIpLGV9ZnVuY3Rpb24gZXgoKXt2YXIgZSx0LHI7cmV0dXJuIHI9ZyxlbChcIm5ld1wiKSxlPWVJKCksdD1ldShcIihcIik/ZXcoKTpbXSxtLm1hcmtFbmQobS5jcmVhdGVOZXdFeHByZXNzaW9uKGUsdCkscil9ZnVuY3Rpb24gZWsoKXt2YXIgZSx0LHIsbixpO2ZvcihpPWcsZT15LmFsbG93SW4seS5hbGxvd0luPSEwLHQ9ZWMoXCJuZXdcIik/ZXgoKTplYigpLHkuYWxsb3dJbj1lOzspe2lmKGV1KFwiLlwiKSluPWVFKCksdD1tLmNyZWF0ZU1lbWJlckV4cHJlc3Npb24oXCIuXCIsdCxuKTtlbHNlIGlmKGV1KFwiKFwiKSlyPWV3KCksdD1tLmNyZWF0ZUNhbGxFeHByZXNzaW9uKHQscik7ZWxzZSBpZihldShcIltcIikpbj1lQSgpLHQ9bS5jcmVhdGVNZW1iZXJFeHByZXNzaW9uKFwiW1wiLHQsbik7ZWxzZSBicmVhazttLm1hcmtFbmQodCxpKX1yZXR1cm4gdH1mdW5jdGlvbiBlSSgpe3ZhciBlLHQscixuO2ZvcihuPWcsZT15LmFsbG93SW4sdD1lYyhcIm5ld1wiKT9leCgpOmViKCkseS5hbGxvd0luPWU7ZXUoXCIuXCIpfHxldShcIltcIik7KWV1KFwiW1wiKT8ocj1lQSgpLHQ9bS5jcmVhdGVNZW1iZXJFeHByZXNzaW9uKFwiW1wiLHQscikpOihyPWVFKCksdD1tLmNyZWF0ZU1lbWJlckV4cHJlc3Npb24oXCIuXCIsdCxyKSksbS5tYXJrRW5kKHQsbik7cmV0dXJuIHR9ZnVuY3Rpb24gZU8oKXt2YXIgZSxyLG49ZztyZXR1cm4gZT1laygpLGcudHlwZT09PXQuUHVuY3R1YXRvciYmKGV1KFwiKytcIil8fGV1KFwiLS1cIikpJiYhZW4oKSYmKGMmJmUudHlwZT09PWkuSWRlbnRpZmllciYmaihlLm5hbWUpJiZlYSh7fSxvLlN0cmljdExIU1Bvc3RmaXgpLGVoKGUpfHxlYSh7fSxvLkludmFsaWRMSFNJbkFzc2lnbm1lbnQpLHI9WigpLGU9bS5tYXJrRW5kKG0uY3JlYXRlUG9zdGZpeEV4cHJlc3Npb24oci52YWx1ZSxlKSxuKSksZX1mdW5jdGlvbiBlaigpe3ZhciBlLHIsbjtyZXR1cm4gZy50eXBlIT09dC5QdW5jdHVhdG9yJiZnLnR5cGUhPT10LktleXdvcmQ/cj1lTygpOmV1KFwiKytcIil8fGV1KFwiLS1cIik/KG49ZyxlPVooKSxyPWVqKCksYyYmci50eXBlPT09aS5JZGVudGlmaWVyJiZqKHIubmFtZSkmJmVhKHt9LG8uU3RyaWN0TEhTUHJlZml4KSxlaChyKXx8ZWEoe30sby5JbnZhbGlkTEhTSW5Bc3NpZ25tZW50KSxyPW0uY3JlYXRlVW5hcnlFeHByZXNzaW9uKGUudmFsdWUscikscj1tLm1hcmtFbmQocixuKSk6ZXUoXCIrXCIpfHxldShcIi1cIil8fGV1KFwiflwiKXx8ZXUoXCIhXCIpPyhuPWcsZT1aKCkscj1laigpLHI9bS5jcmVhdGVVbmFyeUV4cHJlc3Npb24oZS52YWx1ZSxyKSxyPW0ubWFya0VuZChyLG4pKTplYyhcImRlbGV0ZVwiKXx8ZWMoXCJ2b2lkXCIpfHxlYyhcInR5cGVvZlwiKT8obj1nLGU9WigpLHI9ZWooKSxyPW0uY3JlYXRlVW5hcnlFeHByZXNzaW9uKGUudmFsdWUscikscj1tLm1hcmtFbmQocixuKSxjJiZcImRlbGV0ZVwiPT09ci5vcGVyYXRvciYmci5hcmd1bWVudC50eXBlPT09aS5JZGVudGlmaWVyJiZlYSh7fSxvLlN0cmljdERlbGV0ZSkpOnI9ZU8oKSxyfWZ1bmN0aW9uIGVUKGUscil7dmFyIG49MDtpZihlLnR5cGUhPT10LlB1bmN0dWF0b3ImJmUudHlwZSE9PXQuS2V5d29yZClyZXR1cm4gMDtzd2l0Y2goZS52YWx1ZSl7Y2FzZVwifHxcIjpuPTE7YnJlYWs7Y2FzZVwiJiZcIjpuPTI7YnJlYWs7Y2FzZVwifFwiOm49MzticmVhaztjYXNlXCJeXCI6bj00O2JyZWFrO2Nhc2VcIiZcIjpuPTU7YnJlYWs7Y2FzZVwiPT1cIjpjYXNlXCIhPVwiOmNhc2VcIj09PVwiOmNhc2VcIiE9PVwiOm49NjticmVhaztjYXNlXCI8XCI6Y2FzZVwiPlwiOmNhc2VcIjw9XCI6Y2FzZVwiPj1cIjpjYXNlXCJpbnN0YW5jZW9mXCI6bj03O2JyZWFrO2Nhc2VcImluXCI6bj03KiEhcjticmVhaztjYXNlXCI8PFwiOmNhc2VcIj4+XCI6Y2FzZVwiPj4+XCI6bj04O2JyZWFrO2Nhc2VcIitcIjpjYXNlXCItXCI6bj05O2JyZWFrO2Nhc2VcIipcIjpjYXNlXCIvXCI6Y2FzZVwiJVwiOm49MTF9cmV0dXJuIG59ZnVuY3Rpb24gZVAoKXt2YXIgZSx0LHIsbixpLGEsbyxzLGwsdTtpZihlPWcsbD1laigpLDA9PT0oaT1lVChuPWcseS5hbGxvd0luKSkpcmV0dXJuIGw7Zm9yKG4ucHJlYz1pLFooKSx0PVtlLGddLGE9W2wsbixvPWVqKCldOyhpPWVUKGcseS5hbGxvd0luKSk+MDspe2Zvcig7YS5sZW5ndGg+MiYmaTw9YVthLmxlbmd0aC0yXS5wcmVjOylvPWEucG9wKCkscz1hLnBvcCgpLnZhbHVlLGw9YS5wb3AoKSxyPW0uY3JlYXRlQmluYXJ5RXhwcmVzc2lvbihzLGwsbyksdC5wb3AoKSxlPXRbdC5sZW5ndGgtMV0sbS5tYXJrRW5kKHIsZSksYS5wdXNoKHIpOyhuPVooKSkucHJlYz1pLGEucHVzaChuKSx0LnB1c2goZykscj1laigpLGEucHVzaChyKX1mb3IodT1hLmxlbmd0aC0xLHI9YVt1XSx0LnBvcCgpO3U+MTspcj1tLmNyZWF0ZUJpbmFyeUV4cHJlc3Npb24oYVt1LTFdLnZhbHVlLGFbdS0yXSxyKSx1LT0yLGU9dC5wb3AoKSxtLm1hcmtFbmQocixlKTtyZXR1cm4gcn1mdW5jdGlvbiBlQygpe3ZhciBlLHQscixuLGk7cmV0dXJuIGk9ZyxlPWVQKCksZXUoXCI/XCIpJiYoWigpLHQ9eS5hbGxvd0luLHkuYWxsb3dJbj0hMCxyPWVOKCkseS5hbGxvd0luPXQsZXMoXCI6XCIpLG49ZU4oKSxlPW0uY3JlYXRlQ29uZGl0aW9uYWxFeHByZXNzaW9uKGUscixuKSxtLm1hcmtFbmQoZSxpKSksZX1mdW5jdGlvbiBlTigpe3ZhciBlLHQscixuLGE7cmV0dXJuIGU9ZyxhPWcsbj10PWVDKCksZXAoKSYmKGVoKHQpfHxlYSh7fSxvLkludmFsaWRMSFNJbkFzc2lnbm1lbnQpLGMmJnQudHlwZT09PWkuSWRlbnRpZmllciYmaih0Lm5hbWUpJiZlYShlLG8uU3RyaWN0TEhTQXNzaWdubWVudCksZT1aKCkscj1lTigpLG49bS5tYXJrRW5kKG0uY3JlYXRlQXNzaWdubWVudEV4cHJlc3Npb24oZS52YWx1ZSx0LHIpLGEpKSxufWZ1bmN0aW9uIGVSKCl7dmFyIGUsdD1nO2lmKGU9ZU4oKSxldShcIixcIikpe2ZvcihlPW0uY3JlYXRlU2VxdWVuY2VFeHByZXNzaW9uKFtlXSk7cDxmJiZldShcIixcIik7KVooKSxlLmV4cHJlc3Npb25zLnB1c2goZU4oKSk7bS5tYXJrRW5kKGUsdCl9cmV0dXJuIGV9ZnVuY3Rpb24gZU0oKXtmb3IodmFyIGUsdD1bXTtwPGYmJiFldShcIn1cIikmJnZvaWQgMCE9PShlPXRlKCkpOyl0LnB1c2goZSk7cmV0dXJuIHR9ZnVuY3Rpb24gZUYoKXt2YXIgZSx0O3JldHVybiB0PWcsZXMoXCJ7XCIpLGU9ZU0oKSxlcyhcIn1cIiksbS5tYXJrRW5kKG0uY3JlYXRlQmxvY2tTdGF0ZW1lbnQoZSksdCl9ZnVuY3Rpb24gZUwoKXt2YXIgZSxyO3JldHVybiByPWcsKGU9WigpKS50eXBlIT09dC5JZGVudGlmaWVyJiZlbyhlKSxtLm1hcmtFbmQobS5jcmVhdGVJZGVudGlmaWVyKGUudmFsdWUpLHIpfWZ1bmN0aW9uIGVEKGUpe3ZhciB0LHIsbj1udWxsO3JldHVybiByPWcsdD1lTCgpLGMmJmoodC5uYW1lKSYmZWEoe30sby5TdHJpY3RWYXJOYW1lKSxcImNvbnN0XCI9PT1lPyhlcyhcIj1cIiksbj1lTigpKTpldShcIj1cIikmJihaKCksbj1lTigpKSxtLm1hcmtFbmQobS5jcmVhdGVWYXJpYWJsZURlY2xhcmF0b3IodCxuKSxyKX1mdW5jdGlvbiBlcShlKXt2YXIgdD1bXTtkb3tpZih0LnB1c2goZUQoZSkpLCFldShcIixcIikpYnJlYWs7WigpfXdoaWxlKHA8ZilyZXR1cm4gdH1mdW5jdGlvbiBlQigpe3ZhciBlO3JldHVybiBlbChcInZhclwiKSxlPWVxKCksZWQoKSxtLmNyZWF0ZVZhcmlhYmxlRGVjbGFyYXRpb24oZSxcInZhclwiKX1mdW5jdGlvbiBlVShlKXt2YXIgdCxyO3JldHVybiByPWcsZWwoZSksdD1lcShlKSxlZCgpLG0ubWFya0VuZChtLmNyZWF0ZVZhcmlhYmxlRGVjbGFyYXRpb24odCxlKSxyKX1mdW5jdGlvbiBlJCgpe3JldHVybiBlcyhcIjtcIiksbS5jcmVhdGVFbXB0eVN0YXRlbWVudCgpfWZ1bmN0aW9uIGVXKCl7dmFyIGU9ZVIoKTtyZXR1cm4gZWQoKSxtLmNyZWF0ZUV4cHJlc3Npb25TdGF0ZW1lbnQoZSl9ZnVuY3Rpb24gZUcoKXt2YXIgZSx0LHI7cmV0dXJuIGVsKFwiaWZcIiksZXMoXCIoXCIpLGU9ZVIoKSxlcyhcIilcIiksdD1lOCgpLGVjKFwiZWxzZVwiKT8oWigpLHI9ZTgoKSk6cj1udWxsLG0uY3JlYXRlSWZTdGF0ZW1lbnQoZSx0LHIpfWZ1bmN0aW9uIGVIKCl7dmFyIGUsdCxyO3JldHVybiBlbChcImRvXCIpLHI9eS5pbkl0ZXJhdGlvbix5LmluSXRlcmF0aW9uPSEwLGU9ZTgoKSx5LmluSXRlcmF0aW9uPXIsZWwoXCJ3aGlsZVwiKSxlcyhcIihcIiksdD1lUigpLGVzKFwiKVwiKSxldShcIjtcIikmJlooKSxtLmNyZWF0ZURvV2hpbGVTdGF0ZW1lbnQoZSx0KX1mdW5jdGlvbiBlVigpe3ZhciBlLHQscjtyZXR1cm4gZWwoXCJ3aGlsZVwiKSxlcyhcIihcIiksZT1lUigpLGVzKFwiKVwiKSxyPXkuaW5JdGVyYXRpb24seS5pbkl0ZXJhdGlvbj0hMCx0PWU4KCkseS5pbkl0ZXJhdGlvbj1yLG0uY3JlYXRlV2hpbGVTdGF0ZW1lbnQoZSx0KX1mdW5jdGlvbiBleigpe3ZhciBlLHQscjtyZXR1cm4gcj1nLGU9WigpLHQ9ZXEoKSxtLm1hcmtFbmQobS5jcmVhdGVWYXJpYWJsZURlY2xhcmF0aW9uKHQsZS52YWx1ZSkscil9ZnVuY3Rpb24gZUooKXt2YXIgZSx0LHIsbixpLGEscztyZXR1cm4gZT10PXI9bnVsbCxlbChcImZvclwiKSxlcyhcIihcIiksZXUoXCI7XCIpP1ooKTooZWMoXCJ2YXJcIil8fGVjKFwibGV0XCIpPyh5LmFsbG93SW49ITEsZT1leigpLHkuYWxsb3dJbj0hMCwxPT09ZS5kZWNsYXJhdGlvbnMubGVuZ3RoJiZlYyhcImluXCIpJiYoWigpLG49ZSxpPWVSKCksZT1udWxsKSk6KHkuYWxsb3dJbj0hMSxlPWVSKCkseS5hbGxvd0luPSEwLGVjKFwiaW5cIikmJihlaChlKXx8ZWEoe30sby5JbnZhbGlkTEhTSW5Gb3JJbiksWigpLG49ZSxpPWVSKCksZT1udWxsKSksdm9pZCAwPT09biYmZXMoXCI7XCIpKSx2b2lkIDAhPT1ufHwoZXUoXCI7XCIpfHwodD1lUigpKSxlcyhcIjtcIiksZXUoXCIpXCIpfHwocj1lUigpKSksZXMoXCIpXCIpLHM9eS5pbkl0ZXJhdGlvbix5LmluSXRlcmF0aW9uPSEwLGE9ZTgoKSx5LmluSXRlcmF0aW9uPXMsdm9pZCAwPT09bj9tLmNyZWF0ZUZvclN0YXRlbWVudChlLHQscixhKTptLmNyZWF0ZUZvckluU3RhdGVtZW50KG4saSxhKX1mdW5jdGlvbiBlUSgpe3ZhciBlLHI9bnVsbDtyZXR1cm4oZWwoXCJjb250aW51ZVwiKSw1OT09PXUuY2hhckNvZGVBdChwKSk/KFooKSx5LmluSXRlcmF0aW9ufHxlaSh7fSxvLklsbGVnYWxDb250aW51ZSksbS5jcmVhdGVDb250aW51ZVN0YXRlbWVudChudWxsKSk6ZW4oKT8oeS5pbkl0ZXJhdGlvbnx8ZWkoe30sby5JbGxlZ2FsQ29udGludWUpLG0uY3JlYXRlQ29udGludWVTdGF0ZW1lbnQobnVsbCkpOihnLnR5cGUhPT10LklkZW50aWZpZXJ8fChlPVwiJFwiKyhyPWVMKCkpLm5hbWUsT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHkubGFiZWxTZXQsZSl8fGVpKHt9LG8uVW5rbm93bkxhYmVsLHIubmFtZSkpLGVkKCksbnVsbCE9PXJ8fHkuaW5JdGVyYXRpb258fGVpKHt9LG8uSWxsZWdhbENvbnRpbnVlKSxtLmNyZWF0ZUNvbnRpbnVlU3RhdGVtZW50KHIpKX1mdW5jdGlvbiBlSygpe3ZhciBlLHI9bnVsbDtyZXR1cm4oZWwoXCJicmVha1wiKSw1OT09PXUuY2hhckNvZGVBdChwKSk/KFooKSx5LmluSXRlcmF0aW9ufHx5LmluU3dpdGNofHxlaSh7fSxvLklsbGVnYWxCcmVhayksbS5jcmVhdGVCcmVha1N0YXRlbWVudChudWxsKSk6ZW4oKT8oeS5pbkl0ZXJhdGlvbnx8eS5pblN3aXRjaHx8ZWkoe30sby5JbGxlZ2FsQnJlYWspLG0uY3JlYXRlQnJlYWtTdGF0ZW1lbnQobnVsbCkpOihnLnR5cGUhPT10LklkZW50aWZpZXJ8fChlPVwiJFwiKyhyPWVMKCkpLm5hbWUsT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHkubGFiZWxTZXQsZSl8fGVpKHt9LG8uVW5rbm93bkxhYmVsLHIubmFtZSkpLGVkKCksbnVsbCE9PXJ8fHkuaW5JdGVyYXRpb258fHkuaW5Td2l0Y2h8fGVpKHt9LG8uSWxsZWdhbEJyZWFrKSxtLmNyZWF0ZUJyZWFrU3RhdGVtZW50KHIpKX1mdW5jdGlvbiBlWCgpe3ZhciBlPW51bGw7cmV0dXJuKGVsKFwicmV0dXJuXCIpLHkuaW5GdW5jdGlvbkJvZHl8fGVhKHt9LG8uSWxsZWdhbFJldHVybiksMzI9PT11LmNoYXJDb2RlQXQocCkmJngodS5jaGFyQ29kZUF0KHArMSkpKT8oZT1lUigpLGVkKCksbS5jcmVhdGVSZXR1cm5TdGF0ZW1lbnQoZSkpOmVuKCk/bS5jcmVhdGVSZXR1cm5TdGF0ZW1lbnQobnVsbCk6KGV1KFwiO1wiKXx8ZXUoXCJ9XCIpfHxnLnR5cGU9PT10LkVPRnx8KGU9ZVIoKSksZWQoKSxtLmNyZWF0ZVJldHVyblN0YXRlbWVudChlKSl9ZnVuY3Rpb24gZVkoKXt2YXIgZSx0O3JldHVybiBjJiYoUigpLGVhKHt9LG8uU3RyaWN0TW9kZVdpdGgpKSxlbChcIndpdGhcIiksZXMoXCIoXCIpLGU9ZVIoKSxlcyhcIilcIiksdD1lOCgpLG0uY3JlYXRlV2l0aFN0YXRlbWVudChlLHQpfWZ1bmN0aW9uIGVaKCl7dmFyIGUsdCxyLG49W107Zm9yKHI9ZyxlYyhcImRlZmF1bHRcIik/KFooKSxlPW51bGwpOihlbChcImNhc2VcIiksZT1lUigpKSxlcyhcIjpcIik7cDxmJiYhKGV1KFwifVwiKXx8ZWMoXCJkZWZhdWx0XCIpfHxlYyhcImNhc2VcIikpOyl0PWU4KCksbi5wdXNoKHQpO3JldHVybiBtLm1hcmtFbmQobS5jcmVhdGVTd2l0Y2hDYXNlKGUsbikscil9ZnVuY3Rpb24gZTEoKXt2YXIgZSx0LHIsbixpO2lmKGVsKFwic3dpdGNoXCIpLGVzKFwiKFwiKSxlPWVSKCksZXMoXCIpXCIpLGVzKFwie1wiKSx0PVtdLGV1KFwifVwiKSlyZXR1cm4gWigpLG0uY3JlYXRlU3dpdGNoU3RhdGVtZW50KGUsdCk7Zm9yKG49eS5pblN3aXRjaCx5LmluU3dpdGNoPSEwLGk9ITE7cDxmJiYhZXUoXCJ9XCIpOyludWxsPT09KHI9ZVooKSkudGVzdCYmKGkmJmVpKHt9LG8uTXVsdGlwbGVEZWZhdWx0c0luU3dpdGNoKSxpPSEwKSx0LnB1c2gocik7cmV0dXJuIHkuaW5Td2l0Y2g9bixlcyhcIn1cIiksbS5jcmVhdGVTd2l0Y2hTdGF0ZW1lbnQoZSx0KX1mdW5jdGlvbiBlMCgpe3ZhciBlO3JldHVybiBlbChcInRocm93XCIpLGVuKCkmJmVpKHt9LG8uTmV3bGluZUFmdGVyVGhyb3cpLGU9ZVIoKSxlZCgpLG0uY3JlYXRlVGhyb3dTdGF0ZW1lbnQoZSl9ZnVuY3Rpb24gZTIoKXt2YXIgZSx0LHI7cmV0dXJuIHI9ZyxlbChcImNhdGNoXCIpLGVzKFwiKFwiKSxldShcIilcIikmJmVvKGcpLGU9ZUwoKSxjJiZqKGUubmFtZSkmJmVhKHt9LG8uU3RyaWN0Q2F0Y2hWYXJpYWJsZSksZXMoXCIpXCIpLHQ9ZUYoKSxtLm1hcmtFbmQobS5jcmVhdGVDYXRjaENsYXVzZShlLHQpLHIpfWZ1bmN0aW9uIGUzKCl7dmFyIGUsdD1bXSxyPW51bGw7cmV0dXJuIGVsKFwidHJ5XCIpLGU9ZUYoKSxlYyhcImNhdGNoXCIpJiZ0LnB1c2goZTIoKSksZWMoXCJmaW5hbGx5XCIpJiYoWigpLHI9ZUYoKSksMCE9PXQubGVuZ3RofHxyfHxlaSh7fSxvLk5vQ2F0Y2hPckZpbmFsbHkpLG0uY3JlYXRlVHJ5U3RhdGVtZW50KGUsW10sdCxyKX1mdW5jdGlvbiBlNCgpe3JldHVybiBlbChcImRlYnVnZ2VyXCIpLGVkKCksbS5jcmVhdGVEZWJ1Z2dlclN0YXRlbWVudCgpfWZ1bmN0aW9uIGU4KCl7dmFyIGUscixuLGEscz1nLnR5cGU7aWYocz09PXQuRU9GJiZlbyhnKSxzPT09dC5QdW5jdHVhdG9yJiZcIntcIj09PWcudmFsdWUpcmV0dXJuIGVGKCk7aWYoYT1nLHM9PT10LlB1bmN0dWF0b3Ipc3dpdGNoKGcudmFsdWUpe2Nhc2VcIjtcIjpyZXR1cm4gbS5tYXJrRW5kKGUkKCksYSk7Y2FzZVwiKFwiOnJldHVybiBtLm1hcmtFbmQoZVcoKSxhKX1pZihzPT09dC5LZXl3b3JkKXN3aXRjaChnLnZhbHVlKXtjYXNlXCJicmVha1wiOnJldHVybiBtLm1hcmtFbmQoZUsoKSxhKTtjYXNlXCJjb250aW51ZVwiOnJldHVybiBtLm1hcmtFbmQoZVEoKSxhKTtjYXNlXCJkZWJ1Z2dlclwiOnJldHVybiBtLm1hcmtFbmQoZTQoKSxhKTtjYXNlXCJkb1wiOnJldHVybiBtLm1hcmtFbmQoZUgoKSxhKTtjYXNlXCJmb3JcIjpyZXR1cm4gbS5tYXJrRW5kKGVKKCksYSk7Y2FzZVwiZnVuY3Rpb25cIjpyZXR1cm4gbS5tYXJrRW5kKGU1KCksYSk7Y2FzZVwiaWZcIjpyZXR1cm4gbS5tYXJrRW5kKGVHKCksYSk7Y2FzZVwicmV0dXJuXCI6cmV0dXJuIG0ubWFya0VuZChlWCgpLGEpO2Nhc2VcInN3aXRjaFwiOnJldHVybiBtLm1hcmtFbmQoZTEoKSxhKTtjYXNlXCJ0aHJvd1wiOnJldHVybiBtLm1hcmtFbmQoZTAoKSxhKTtjYXNlXCJ0cnlcIjpyZXR1cm4gbS5tYXJrRW5kKGUzKCksYSk7Y2FzZVwidmFyXCI6cmV0dXJuIG0ubWFya0VuZChlQigpLGEpO2Nhc2VcIndoaWxlXCI6cmV0dXJuIG0ubWFya0VuZChlVigpLGEpO2Nhc2VcIndpdGhcIjpyZXR1cm4gbS5tYXJrRW5kKGVZKCksYSl9cmV0dXJuKGU9ZVIoKSkudHlwZT09PWkuSWRlbnRpZmllciYmZXUoXCI6XCIpPyhaKCksbj1cIiRcIitlLm5hbWUsT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHkubGFiZWxTZXQsbikmJmVpKHt9LG8uUmVkZWNsYXJhdGlvbixcIkxhYmVsXCIsZS5uYW1lKSx5LmxhYmVsU2V0W25dPSEwLHI9ZTgoKSxkZWxldGUgeS5sYWJlbFNldFtuXSxtLm1hcmtFbmQobS5jcmVhdGVMYWJlbGVkU3RhdGVtZW50KGUsciksYSkpOihlZCgpLG0ubWFya0VuZChtLmNyZWF0ZUV4cHJlc3Npb25TdGF0ZW1lbnQoZSksYSkpfWZ1bmN0aW9uIGU2KCl7dmFyIGUscixuLGEscyxsLGQsaCxfPVtdO2ZvcihoPWcsZXMoXCJ7XCIpO3A8ZiYmZy50eXBlPT09dC5TdHJpbmdMaXRlcmFsJiYocj1nLGU9dGUoKSxfLnB1c2goZSksZS5leHByZXNzaW9uLnR5cGU9PT1pLkxpdGVyYWwpOyl7XCJ1c2Ugc3RyaWN0XCI9PT11LnNsaWNlKHIuc3RhcnQrMSxyLmVuZC0xKT8oYz0hMCxuJiZlYShuLG8uU3RyaWN0T2N0YWxMaXRlcmFsKSk6IW4mJnIub2N0YWwmJihuPXIpfWZvcihhPXkubGFiZWxTZXQscz15LmluSXRlcmF0aW9uLGw9eS5pblN3aXRjaCxkPXkuaW5GdW5jdGlvbkJvZHkseS5sYWJlbFNldD17fSx5LmluSXRlcmF0aW9uPSExLHkuaW5Td2l0Y2g9ITEseS5pbkZ1bmN0aW9uQm9keT0hMDtwPGYmJiFldShcIn1cIikmJnZvaWQgMCE9PShlPXRlKCkpOylfLnB1c2goZSk7cmV0dXJuIGVzKFwifVwiKSx5LmxhYmVsU2V0PWEseS5pbkl0ZXJhdGlvbj1zLHkuaW5Td2l0Y2g9bCx5LmluRnVuY3Rpb25Cb2R5PWQsbS5tYXJrRW5kKG0uY3JlYXRlQmxvY2tTdGF0ZW1lbnQoXyksaCl9ZnVuY3Rpb24gZTkoZSl7dmFyIHQscixuLGksYSxzLGw9W107aWYoZXMoXCIoXCIpLCFldShcIilcIikpZm9yKGk9e307cDxmJiYocj1nLHQ9ZUwoKSxhPVwiJFwiK3IudmFsdWUsYz8oaihyLnZhbHVlKSYmKG49cixzPW8uU3RyaWN0UGFyYW1OYW1lKSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaSxhKSYmKG49cixzPW8uU3RyaWN0UGFyYW1EdXBlKSk6IWUmJihqKHIudmFsdWUpPyhlPXIscz1vLlN0cmljdFBhcmFtTmFtZSk6TyhyLnZhbHVlKT8oZT1yLHM9by5TdHJpY3RSZXNlcnZlZFdvcmQpOk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpLGEpJiYoZT1yLHM9by5TdHJpY3RQYXJhbUR1cGUpKSxsLnB1c2godCksaVthXT0hMCwhZXUoXCIpXCIpKTspZXMoXCIsXCIpO3JldHVybiBlcyhcIilcIikse3BhcmFtczpsLHN0cmljdGVkOm4sZmlyc3RSZXN0cmljdGVkOmUsbWVzc2FnZTpzfX1mdW5jdGlvbiBlNSgpe3ZhciBlLHQscixuLGksYSxzLGwsdSxwPVtdO3JldHVybiB1PWcsZWwoXCJmdW5jdGlvblwiKSxyPWcsZT1lTCgpLGM/aihyLnZhbHVlKSYmZWEocixvLlN0cmljdEZ1bmN0aW9uTmFtZSk6aihyLnZhbHVlKT8oYT1yLHM9by5TdHJpY3RGdW5jdGlvbk5hbWUpOk8oci52YWx1ZSkmJihhPXIscz1vLlN0cmljdFJlc2VydmVkV29yZCkscD0oaT1lOShhKSkucGFyYW1zLG49aS5zdHJpY3RlZCxhPWkuZmlyc3RSZXN0cmljdGVkLGkubWVzc2FnZSYmKHM9aS5tZXNzYWdlKSxsPWMsdD1lNigpLGMmJmEmJmVpKGEscyksYyYmbiYmZWEobixzKSxjPWwsbS5tYXJrRW5kKG0uY3JlYXRlRnVuY3Rpb25EZWNsYXJhdGlvbihlLHAsW10sdCksdSl9ZnVuY3Rpb24gZTcoKXt2YXIgZSx0LHIsbixpLGEscyxsLHU9bnVsbCxwPVtdO3JldHVybiBsPWcsZWwoXCJmdW5jdGlvblwiKSwhZXUoXCIoXCIpJiYoZT1nLHU9ZUwoKSxjP2ooZS52YWx1ZSkmJmVhKGUsby5TdHJpY3RGdW5jdGlvbk5hbWUpOmooZS52YWx1ZSk/KHI9ZSxuPW8uU3RyaWN0RnVuY3Rpb25OYW1lKTpPKGUudmFsdWUpJiYocj1lLG49by5TdHJpY3RSZXNlcnZlZFdvcmQpKSxwPShpPWU5KHIpKS5wYXJhbXMsdD1pLnN0cmljdGVkLHI9aS5maXJzdFJlc3RyaWN0ZWQsaS5tZXNzYWdlJiYobj1pLm1lc3NhZ2UpLHM9YyxhPWU2KCksYyYmciYmZWkocixuKSxjJiZ0JiZlYSh0LG4pLGM9cyxtLm1hcmtFbmQobS5jcmVhdGVGdW5jdGlvbkV4cHJlc3Npb24odSxwLFtdLGEpLGwpfWZ1bmN0aW9uIHRlKCl7aWYoZy50eXBlPT09dC5LZXl3b3JkKXN3aXRjaChnLnZhbHVlKXtjYXNlXCJjb25zdFwiOmNhc2VcImxldFwiOnJldHVybiBlVShnLnZhbHVlKTtjYXNlXCJmdW5jdGlvblwiOnJldHVybiBlNSgpO2RlZmF1bHQ6cmV0dXJuIGU4KCl9aWYoZy50eXBlIT09dC5FT0YpcmV0dXJuIGU4KCl9ZnVuY3Rpb24gdHQoKXtmb3IodmFyIGUscixuLGE9W107cDxmJiYocj1nKS50eXBlPT09dC5TdHJpbmdMaXRlcmFsJiYoZT10ZSgpLGEucHVzaChlKSxlLmV4cHJlc3Npb24udHlwZT09PWkuTGl0ZXJhbCk7KXtcInVzZSBzdHJpY3RcIj09PXUuc2xpY2Uoci5zdGFydCsxLHIuZW5kLTEpPyhjPSEwLG4mJmVhKG4sby5TdHJpY3RPY3RhbExpdGVyYWwpKTohbiYmci5vY3RhbCYmKG49cil9Zm9yKDtwPGYmJnZvaWQgMCE9PShlPXRlKCkpOylhLnB1c2goZSk7cmV0dXJuIGF9ZnVuY3Rpb24gdHIoKXt2YXIgZSx0O3JldHVybiBSKCksZWUoKSx0PWcsYz0hMSxlPXR0KCksbS5tYXJrRW5kKG0uY3JlYXRlUHJvZ3JhbShlKSx0KX1mdW5jdGlvbiB0bigpe3ZhciBlLHQscixuPVtdO2ZvcihlPTA7ZTxfLnRva2Vucy5sZW5ndGg7KytlKXI9e3R5cGU6KHQ9Xy50b2tlbnNbZV0pLnR5cGUsdmFsdWU6dC52YWx1ZX0sXy5yYW5nZSYmKHIucmFuZ2U9dC5yYW5nZSksXy5sb2MmJihyLmxvYz10LmxvYyksbi5wdXNoKHIpO18udG9rZW5zPW59ZnVuY3Rpb24gdGkoZSxyKXt2YXIgbixpLGE7bj1TdHJpbmcsXCJzdHJpbmdcIj09dHlwZW9mIGV8fGUgaW5zdGFuY2VvZiBTdHJpbmd8fChlPW4oZSkpLG09bCxwPTAsZD0rKCh1PWUpLmxlbmd0aD4wKSxoPTAsZj11Lmxlbmd0aCxnPW51bGwseT17YWxsb3dJbjohMCxsYWJlbFNldDp7fSxpbkZ1bmN0aW9uQm9keTohMSxpbkl0ZXJhdGlvbjohMSxpblN3aXRjaDohMSxsYXN0Q29tbWVudFN0YXJ0Oi0xfSxfPXt9LChyPXJ8fHt9KS50b2tlbnM9ITAsXy50b2tlbnM9W10sXy50b2tlbml6ZT0hMCxfLm9wZW5QYXJlblRva2VuPS0xLF8ub3BlbkN1cmx5VG9rZW49LTEsXy5yYW5nZT1cImJvb2xlYW5cIj09dHlwZW9mIHIucmFuZ2UmJnIucmFuZ2UsXy5sb2M9XCJib29sZWFuXCI9PXR5cGVvZiByLmxvYyYmci5sb2MsXCJib29sZWFuXCI9PXR5cGVvZiByLmNvbW1lbnQmJnIuY29tbWVudCYmKF8uY29tbWVudHM9W10pLFwiYm9vbGVhblwiPT10eXBlb2Ygci50b2xlcmFudCYmci50b2xlcmFudCYmKF8uZXJyb3JzPVtdKTt0cnl7aWYoZWUoKSxnLnR5cGU9PT10LkVPRilyZXR1cm4gXy50b2tlbnM7Zm9yKGk9WigpO2cudHlwZSE9PXQuRU9GOyl0cnl7aT1aKCl9Y2F0Y2goZSl7aWYoaT1nLF8uZXJyb3JzKXtfLmVycm9ycy5wdXNoKGUpO2JyZWFrfXRocm93IGV9dG4oKSxhPV8udG9rZW5zLHZvaWQgMCE9PV8uY29tbWVudHMmJihhLmNvbW1lbnRzPV8uY29tbWVudHMpLHZvaWQgMCE9PV8uZXJyb3JzJiYoYS5lcnJvcnM9Xy5lcnJvcnMpfWNhdGNoKGUpe3Rocm93IGV9ZmluYWxseXtfPXt9fXJldHVybiBhfWZ1bmN0aW9uIHRhKGUsdCl7dmFyIHIsbjtuPVN0cmluZyxcInN0cmluZ1wiPT10eXBlb2YgZXx8ZSBpbnN0YW5jZW9mIFN0cmluZ3x8KGU9bihlKSksbT1sLHA9MCxkPSsoKHU9ZSkubGVuZ3RoPjApLGg9MCxmPXUubGVuZ3RoLGc9bnVsbCx5PXthbGxvd0luOiEwLGxhYmVsU2V0Ont9LGluRnVuY3Rpb25Cb2R5OiExLGluSXRlcmF0aW9uOiExLGluU3dpdGNoOiExLGxhc3RDb21tZW50U3RhcnQ6LTF9LF89e30sdm9pZCAwIT09dCYmKF8ucmFuZ2U9XCJib29sZWFuXCI9PXR5cGVvZiB0LnJhbmdlJiZ0LnJhbmdlLF8ubG9jPVwiYm9vbGVhblwiPT10eXBlb2YgdC5sb2MmJnQubG9jLF8uYXR0YWNoQ29tbWVudD1cImJvb2xlYW5cIj09dHlwZW9mIHQuYXR0YWNoQ29tbWVudCYmdC5hdHRhY2hDb21tZW50LF8ubG9jJiZudWxsIT09dC5zb3VyY2UmJnZvaWQgMCE9PXQuc291cmNlJiYoXy5zb3VyY2U9bih0LnNvdXJjZSkpLFwiYm9vbGVhblwiPT10eXBlb2YgdC50b2tlbnMmJnQudG9rZW5zJiYoXy50b2tlbnM9W10pLFwiYm9vbGVhblwiPT10eXBlb2YgdC5jb21tZW50JiZ0LmNvbW1lbnQmJihfLmNvbW1lbnRzPVtdKSxcImJvb2xlYW5cIj09dHlwZW9mIHQudG9sZXJhbnQmJnQudG9sZXJhbnQmJihfLmVycm9ycz1bXSksXy5hdHRhY2hDb21tZW50JiYoXy5yYW5nZT0hMCxfLmNvbW1lbnRzPVtdLF8uYm90dG9tUmlnaHRTdGFjaz1bXSxfLnRyYWlsaW5nQ29tbWVudHM9W10sXy5sZWFkaW5nQ29tbWVudHM9W10pKTt0cnl7cj10cigpLHZvaWQgMCE9PV8uY29tbWVudHMmJihyLmNvbW1lbnRzPV8uY29tbWVudHMpLHZvaWQgMCE9PV8udG9rZW5zJiYodG4oKSxyLnRva2Vucz1fLnRva2Vucyksdm9pZCAwIT09Xy5lcnJvcnMmJihyLmVycm9ycz1fLmVycm9ycyl9Y2F0Y2goZSl7dGhyb3cgZX1maW5hbGx5e189e319cmV0dXJuIHJ9KHI9e30pWyh0PXtCb29sZWFuTGl0ZXJhbDoxLEVPRjoyLElkZW50aWZpZXI6MyxLZXl3b3JkOjQsTnVsbExpdGVyYWw6NSxOdW1lcmljTGl0ZXJhbDo2LFB1bmN0dWF0b3I6NyxTdHJpbmdMaXRlcmFsOjgsUmVndWxhckV4cHJlc3Npb246OX0pLkJvb2xlYW5MaXRlcmFsXT1cIkJvb2xlYW5cIixyW3QuRU9GXT1cIjxlbmQ+XCIsclt0LklkZW50aWZpZXJdPVwiSWRlbnRpZmllclwiLHJbdC5LZXl3b3JkXT1cIktleXdvcmRcIixyW3QuTnVsbExpdGVyYWxdPVwiTnVsbFwiLHJbdC5OdW1lcmljTGl0ZXJhbF09XCJOdW1lcmljXCIsclt0LlB1bmN0dWF0b3JdPVwiUHVuY3R1YXRvclwiLHJbdC5TdHJpbmdMaXRlcmFsXT1cIlN0cmluZ1wiLHJbdC5SZWd1bGFyRXhwcmVzc2lvbl09XCJSZWd1bGFyRXhwcmVzc2lvblwiLG49W1wiKFwiLFwie1wiLFwiW1wiLFwiaW5cIixcInR5cGVvZlwiLFwiaW5zdGFuY2VvZlwiLFwibmV3XCIsXCJyZXR1cm5cIixcImNhc2VcIixcImRlbGV0ZVwiLFwidGhyb3dcIixcInZvaWRcIixcIj1cIixcIis9XCIsXCItPVwiLFwiKj1cIixcIi89XCIsXCIlPVwiLFwiPDw9XCIsXCI+Pj1cIixcIj4+Pj1cIixcIiY9XCIsXCJ8PVwiLFwiXj1cIixcIixcIixcIitcIixcIi1cIixcIipcIixcIi9cIixcIiVcIixcIisrXCIsXCItLVwiLFwiPDxcIixcIj4+XCIsXCI+Pj5cIixcIiZcIixcInxcIixcIl5cIixcIiFcIixcIn5cIixcIiYmXCIsXCJ8fFwiLFwiP1wiLFwiOlwiLFwiPT09XCIsXCI9PVwiLFwiPj1cIixcIjw9XCIsXCI8XCIsXCI+XCIsXCIhPVwiLFwiIT09XCJdLGk9e0Fzc2lnbm1lbnRFeHByZXNzaW9uOlwiQXNzaWdubWVudEV4cHJlc3Npb25cIixBcnJheUV4cHJlc3Npb246XCJBcnJheUV4cHJlc3Npb25cIixCbG9ja1N0YXRlbWVudDpcIkJsb2NrU3RhdGVtZW50XCIsQmluYXJ5RXhwcmVzc2lvbjpcIkJpbmFyeUV4cHJlc3Npb25cIixCcmVha1N0YXRlbWVudDpcIkJyZWFrU3RhdGVtZW50XCIsQ2FsbEV4cHJlc3Npb246XCJDYWxsRXhwcmVzc2lvblwiLENhdGNoQ2xhdXNlOlwiQ2F0Y2hDbGF1c2VcIixDb25kaXRpb25hbEV4cHJlc3Npb246XCJDb25kaXRpb25hbEV4cHJlc3Npb25cIixDb250aW51ZVN0YXRlbWVudDpcIkNvbnRpbnVlU3RhdGVtZW50XCIsRG9XaGlsZVN0YXRlbWVudDpcIkRvV2hpbGVTdGF0ZW1lbnRcIixEZWJ1Z2dlclN0YXRlbWVudDpcIkRlYnVnZ2VyU3RhdGVtZW50XCIsRW1wdHlTdGF0ZW1lbnQ6XCJFbXB0eVN0YXRlbWVudFwiLEV4cHJlc3Npb25TdGF0ZW1lbnQ6XCJFeHByZXNzaW9uU3RhdGVtZW50XCIsRm9yU3RhdGVtZW50OlwiRm9yU3RhdGVtZW50XCIsRm9ySW5TdGF0ZW1lbnQ6XCJGb3JJblN0YXRlbWVudFwiLEZ1bmN0aW9uRGVjbGFyYXRpb246XCJGdW5jdGlvbkRlY2xhcmF0aW9uXCIsRnVuY3Rpb25FeHByZXNzaW9uOlwiRnVuY3Rpb25FeHByZXNzaW9uXCIsSWRlbnRpZmllcjpcIklkZW50aWZpZXJcIixJZlN0YXRlbWVudDpcIklmU3RhdGVtZW50XCIsTGl0ZXJhbDpcIkxpdGVyYWxcIixMYWJlbGVkU3RhdGVtZW50OlwiTGFiZWxlZFN0YXRlbWVudFwiLExvZ2ljYWxFeHByZXNzaW9uOlwiTG9naWNhbEV4cHJlc3Npb25cIixNZW1iZXJFeHByZXNzaW9uOlwiTWVtYmVyRXhwcmVzc2lvblwiLE5ld0V4cHJlc3Npb246XCJOZXdFeHByZXNzaW9uXCIsT2JqZWN0RXhwcmVzc2lvbjpcIk9iamVjdEV4cHJlc3Npb25cIixQcm9ncmFtOlwiUHJvZ3JhbVwiLFByb3BlcnR5OlwiUHJvcGVydHlcIixSZXR1cm5TdGF0ZW1lbnQ6XCJSZXR1cm5TdGF0ZW1lbnRcIixTZXF1ZW5jZUV4cHJlc3Npb246XCJTZXF1ZW5jZUV4cHJlc3Npb25cIixTd2l0Y2hTdGF0ZW1lbnQ6XCJTd2l0Y2hTdGF0ZW1lbnRcIixTd2l0Y2hDYXNlOlwiU3dpdGNoQ2FzZVwiLFRoaXNFeHByZXNzaW9uOlwiVGhpc0V4cHJlc3Npb25cIixUaHJvd1N0YXRlbWVudDpcIlRocm93U3RhdGVtZW50XCIsVHJ5U3RhdGVtZW50OlwiVHJ5U3RhdGVtZW50XCIsVW5hcnlFeHByZXNzaW9uOlwiVW5hcnlFeHByZXNzaW9uXCIsVXBkYXRlRXhwcmVzc2lvbjpcIlVwZGF0ZUV4cHJlc3Npb25cIixWYXJpYWJsZURlY2xhcmF0aW9uOlwiVmFyaWFibGVEZWNsYXJhdGlvblwiLFZhcmlhYmxlRGVjbGFyYXRvcjpcIlZhcmlhYmxlRGVjbGFyYXRvclwiLFdoaWxlU3RhdGVtZW50OlwiV2hpbGVTdGF0ZW1lbnRcIixXaXRoU3RhdGVtZW50OlwiV2l0aFN0YXRlbWVudFwifSxhPXtEYXRhOjEsR2V0OjIsU2V0OjR9LG89e1VuZXhwZWN0ZWRUb2tlbjpcIlVuZXhwZWN0ZWQgdG9rZW4gJTBcIixVbmV4cGVjdGVkTnVtYmVyOlwiVW5leHBlY3RlZCBudW1iZXJcIixVbmV4cGVjdGVkU3RyaW5nOlwiVW5leHBlY3RlZCBzdHJpbmdcIixVbmV4cGVjdGVkSWRlbnRpZmllcjpcIlVuZXhwZWN0ZWQgaWRlbnRpZmllclwiLFVuZXhwZWN0ZWRSZXNlcnZlZDpcIlVuZXhwZWN0ZWQgcmVzZXJ2ZWQgd29yZFwiLFVuZXhwZWN0ZWRFT1M6XCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiLE5ld2xpbmVBZnRlclRocm93OlwiSWxsZWdhbCBuZXdsaW5lIGFmdGVyIHRocm93XCIsSW52YWxpZFJlZ0V4cDpcIkludmFsaWQgcmVndWxhciBleHByZXNzaW9uXCIsVW50ZXJtaW5hdGVkUmVnRXhwOlwiSW52YWxpZCByZWd1bGFyIGV4cHJlc3Npb246IG1pc3NpbmcgL1wiLEludmFsaWRMSFNJbkFzc2lnbm1lbnQ6XCJJbnZhbGlkIGxlZnQtaGFuZCBzaWRlIGluIGFzc2lnbm1lbnRcIixJbnZhbGlkTEhTSW5Gb3JJbjpcIkludmFsaWQgbGVmdC1oYW5kIHNpZGUgaW4gZm9yLWluXCIsTXVsdGlwbGVEZWZhdWx0c0luU3dpdGNoOlwiTW9yZSB0aGFuIG9uZSBkZWZhdWx0IGNsYXVzZSBpbiBzd2l0Y2ggc3RhdGVtZW50XCIsTm9DYXRjaE9yRmluYWxseTpcIk1pc3NpbmcgY2F0Y2ggb3IgZmluYWxseSBhZnRlciB0cnlcIixVbmtub3duTGFiZWw6XCJVbmRlZmluZWQgbGFiZWwgJyUwJ1wiLFJlZGVjbGFyYXRpb246XCIlMCAnJTEnIGhhcyBhbHJlYWR5IGJlZW4gZGVjbGFyZWRcIixJbGxlZ2FsQ29udGludWU6XCJJbGxlZ2FsIGNvbnRpbnVlIHN0YXRlbWVudFwiLElsbGVnYWxCcmVhazpcIklsbGVnYWwgYnJlYWsgc3RhdGVtZW50XCIsSWxsZWdhbFJldHVybjpcIklsbGVnYWwgcmV0dXJuIHN0YXRlbWVudFwiLFN0cmljdE1vZGVXaXRoOlwiU3RyaWN0IG1vZGUgY29kZSBtYXkgbm90IGluY2x1ZGUgYSB3aXRoIHN0YXRlbWVudFwiLFN0cmljdENhdGNoVmFyaWFibGU6XCJDYXRjaCB2YXJpYWJsZSBtYXkgbm90IGJlIGV2YWwgb3IgYXJndW1lbnRzIGluIHN0cmljdCBtb2RlXCIsU3RyaWN0VmFyTmFtZTpcIlZhcmlhYmxlIG5hbWUgbWF5IG5vdCBiZSBldmFsIG9yIGFyZ3VtZW50cyBpbiBzdHJpY3QgbW9kZVwiLFN0cmljdFBhcmFtTmFtZTpcIlBhcmFtZXRlciBuYW1lIGV2YWwgb3IgYXJndW1lbnRzIGlzIG5vdCBhbGxvd2VkIGluIHN0cmljdCBtb2RlXCIsU3RyaWN0UGFyYW1EdXBlOlwiU3RyaWN0IG1vZGUgZnVuY3Rpb24gbWF5IG5vdCBoYXZlIGR1cGxpY2F0ZSBwYXJhbWV0ZXIgbmFtZXNcIixTdHJpY3RGdW5jdGlvbk5hbWU6XCJGdW5jdGlvbiBuYW1lIG1heSBub3QgYmUgZXZhbCBvciBhcmd1bWVudHMgaW4gc3RyaWN0IG1vZGVcIixTdHJpY3RPY3RhbExpdGVyYWw6XCJPY3RhbCBsaXRlcmFscyBhcmUgbm90IGFsbG93ZWQgaW4gc3RyaWN0IG1vZGUuXCIsU3RyaWN0RGVsZXRlOlwiRGVsZXRlIG9mIGFuIHVucXVhbGlmaWVkIGlkZW50aWZpZXIgaW4gc3RyaWN0IG1vZGUuXCIsU3RyaWN0RHVwbGljYXRlUHJvcGVydHk6XCJEdXBsaWNhdGUgZGF0YSBwcm9wZXJ0eSBpbiBvYmplY3QgbGl0ZXJhbCBub3QgYWxsb3dlZCBpbiBzdHJpY3QgbW9kZVwiLEFjY2Vzc29yRGF0YVByb3BlcnR5OlwiT2JqZWN0IGxpdGVyYWwgbWF5IG5vdCBoYXZlIGRhdGEgYW5kIGFjY2Vzc29yIHByb3BlcnR5IHdpdGggdGhlIHNhbWUgbmFtZVwiLEFjY2Vzc29yR2V0U2V0OlwiT2JqZWN0IGxpdGVyYWwgbWF5IG5vdCBoYXZlIG11bHRpcGxlIGdldC9zZXQgYWNjZXNzb3JzIHdpdGggdGhlIHNhbWUgbmFtZVwiLFN0cmljdExIU0Fzc2lnbm1lbnQ6XCJBc3NpZ25tZW50IHRvIGV2YWwgb3IgYXJndW1lbnRzIGlzIG5vdCBhbGxvd2VkIGluIHN0cmljdCBtb2RlXCIsU3RyaWN0TEhTUG9zdGZpeDpcIlBvc3RmaXggaW5jcmVtZW50L2RlY3JlbWVudCBtYXkgbm90IGhhdmUgZXZhbCBvciBhcmd1bWVudHMgb3BlcmFuZCBpbiBzdHJpY3QgbW9kZVwiLFN0cmljdExIU1ByZWZpeDpcIlByZWZpeCBpbmNyZW1lbnQvZGVjcmVtZW50IG1heSBub3QgaGF2ZSBldmFsIG9yIGFyZ3VtZW50cyBvcGVyYW5kIGluIHN0cmljdCBtb2RlXCIsU3RyaWN0UmVzZXJ2ZWRXb3JkOlwiVXNlIG9mIGZ1dHVyZSByZXNlcnZlZCB3b3JkIGluIHN0cmljdCBtb2RlXCJ9LHM9e05vbkFzY2lpSWRlbnRpZmllclN0YXJ0OlJlZ0V4cChcIlvCqsK1wrrDgC3DlsOYLcO2w7gty4HLhi3LkcugLcuky6zLrs2wLc20zbbNt826Lc29zobOiC3Ois6Mzo4tzqHOoy3Ptc+3LdKB0oot1KfUsS3VltWZ1aEt1ofXkC3XqtewLdey2KAt2YrZrtmv2bEt25Pbldul26bbrtuv27ot27zbv9yQ3JIt3K/djS3epd6x34ot36rftN+137rgoIAt4KCV4KCa4KCk4KCo4KGALeChmOCioOCioi3goqzgpIQt4KS54KS94KWQ4KWYLeCloeClsS3gpbfgpbkt4KW/4KaFLeCmjOCmj+CmkOCmky3gpqjgpqot4Kaw4Kay4Ka2LeCmueCmveCnjuCnnOCnneCnny3gp6Hgp7Dgp7HgqIUt4KiK4KiP4KiQ4KiTLeCoqOCoqi3gqLDgqLLgqLPgqLXgqLbgqLjgqLngqZkt4Kmc4Kme4KmyLeCptOCqhS3gqo3gqo8t4KqR4KqTLeCqqOCqqi3gqrDgqrLgqrPgqrUt4Kq54Kq94KuQ4Kug4Kuh4KyFLeCsjOCsj+CskOCsky3grKjgrKot4Kyw4Kyy4Kyz4Ky1LeCsueCsveCtnOCtneCtny3graHgrbHgroPgroUt4K6K4K6OLeCukOCuki3grpXgrpngrprgrpzgrp7grp/grqPgrqTgrqgt4K6q4K6uLeCuueCvkOCwhS3gsIzgsI4t4LCQ4LCSLeCwqOCwqi3gsLPgsLUt4LC54LC94LGY4LGZ4LGg4LGh4LKFLeCyjOCyji3gspDgspIt4LKo4LKqLeCys+CytS3gsrngsr3gs57gs6Dgs6Hgs7Hgs7LgtIUt4LSM4LSOLeC0kOC0ki3gtLrgtL3gtY7gtaDgtaHgtbot4LW/4LaFLeC2luC2mi3gtrHgtrMt4La74La94LeALeC3huC4gS3guLDguLLguLPguYAt4LmG4LqB4LqC4LqE4LqH4LqI4LqK4LqN4LqULeC6l+C6mS3gup/guqEt4Lqj4Lql4Lqn4Lqq4Lqr4LqtLeC6sOC6suC6s+C6veC7gC3gu4Tgu4bgu5wt4Luf4LyA4L2ALeC9h+C9iS3gvazgvogt4L6M4YCALeGAquGAv+GBkC3hgZXhgZot4YGd4YGh4YGl4YGm4YGuLeGBsOGBtS3hgoHhgo7hgqAt4YOF4YOH4YON4YOQLeGDuuGDvC3hiYjhiYot4YmN4YmQLeGJluGJmOGJmi3hiZ3hiaAt4YqI4YqKLeGKjeGKkC3hirDhirIt4Yq14Yq4LeGKvuGLgOGLgi3hi4Xhi4gt4YuW4YuYLeGMkOGMki3hjJXhjJgt4Y2a4Y6ALeGOj+GOoC3hj7ThkIEt4Zms4ZmvLeGZv+GagS3hmprhmqAt4Zuq4ZuuLeGbsOGcgC3hnIzhnI4t4ZyR4ZygLeGcseGdgC3hnZHhnaAt4Z2s4Z2uLeGdsOGegC3hnrPhn5fhn5zhoKAt4aG34aKALeGiqOGiquGisC3ho7XhpIAt4aSc4aWQLeGlreGlsC3hpbThpoAt4aar4aeBLeGnh+GogC3hqJbhqKAt4amU4aqn4ayFLeGss+GthS3hrYvhroMt4a6g4a6u4a6v4a66LeGvpeGwgC3hsKPhsY0t4bGP4bGaLeGxveGzqS3hs6zhs64t4bOx4bO14bO24bSALeG2v+G4gC3hvJXhvJgt4byd4bygLeG9heG9iC3hvY3hvZAt4b2X4b2Z4b2b4b2d4b2fLeG9veG+gC3hvrThvrYt4b684b6+4b+CLeG/hOG/hi3hv4zhv5At4b+T4b+WLeG/m+G/oC3hv6zhv7It4b+04b+2LeG/vOKBseKBv+KCkC3igpzihILihIfihIot4oST4oSV4oSZLeKEneKEpOKEpuKEqOKEqi3ihK3ihK8t4oS54oS8LeKEv+KFhS3ihYnihY7ihaAt4oaI4rCALeKwruKwsC3isZ7isaAt4rOk4rOrLeKzruKzsuKzs+K0gC3itKXitKfitK3itLAt4rWn4rWv4raALeK2luK2oC3itqbitqgt4rau4rawLeK2tuK2uC3itr7it4At4reG4reILeK3juK3kC3it5bit5gt4ree4riv44CFLeOAh+OAoS3jgKnjgLEt44C144C4LeOAvOOBgS3jgpbjgp0t44Kf44KhLeODuuODvC3jg7/jhIUt44St44SxLeOGjuOGoC3jhrrjh7At44e/45CALeS2teS4gC3pv4zqgIAt6pKM6pOQLeqTveqUgC3qmIzqmJAt6pif6piq6pir6pmALeqZruqZvy3qmpfqmqAt6puv6pyXLeqcn+qcoi3qnojqnost6p6O6p6QLeqek+qeoC3qnqrqn7gt6qCB6qCDLeqgheqghy3qoIrqoIwt6qCi6qGALeqhs+qigi3qorPqo7It6qO36qO76qSKLeqkpeqksC3qpYbqpaAt6qW86qaELeqmsuqnj+qogC3qqKjqqYAt6qmC6qmELeqpi+qpoC3qqbbqqbrqqoAt6qqv6qqx6qq16qq26qq5LeqqveqrgOqrguqrmy3qq53qq6At6quq6quyLeqrtOqsgS3qrIbqrIkt6qyO6qyRLeqsluqsoC3qrKbqrKgt6qyu6q+ALeqvouqwgC3tnqPtnrAt7Z+G7Z+LLe2fu++kgC3vqa3vqbAt76uZ76yALe+shu+sky3vrJfvrJ3vrJ8t76yo76yqLe+stu+suC3vrLzvrL7vrYDvrYHvrYPvrYTvrYYt766x76+TLe+0ve+1kC3vto/vtpIt77eH77ewLe+3u++5sC3vubTvubYt77u877yhLe+8uu+9gS3vvZrvvaYt776+77+CLe+/h++/ii3vv4/vv5It77+X77+aLe+/nF1cIiksTm9uQXNjaWlJZGVudGlmaWVyUGFydDpSZWdFeHAoXCJbwqrCtcK6w4Atw5bDmC3DtsO4LcuBy4Yty5HLoC3LpMusy67MgC3NtM22zbfNui3Nvc6GzogtzorOjM6OLc6hzqMtz7XPty3SgdKDLdKH0oot1KfUsS3VltWZ1aEt1ofWkS3Wvda/14HXgteE14XXh9eQLdeq17At17LYkC3YmtigLdmp2a4t25PblS3bnNufLduo26ot27zbv9yQLd2K3Y0t3rHfgC3ftd+64KCALeCgreChgC3goZvgoqDgoqIt4KKs4KOkLeCjvuCkgC3gpaPgpaYt4KWv4KWxLeClt+CluS3gpb/gpoEt4KaD4KaFLeCmjOCmj+CmkOCmky3gpqjgpqot4Kaw4Kay4Ka2LeCmueCmvC3gp4Tgp4fgp4jgp4st4KeO4KeX4Kec4Ked4KefLeCno+Cnpi3gp7HgqIEt4KiD4KiFLeCoiuCoj+CokOCoky3gqKjgqKot4Kiw4Kiy4Kiz4Ki14Ki24Ki44Ki54Ki84Ki+LeCpguCph+CpiOCpiy3gqY3gqZHgqZkt4Kmc4Kme4KmmLeCpteCqgS3gqoPgqoUt4KqN4KqPLeCqkeCqky3gqqjgqqot4Kqw4Kqy4Kqz4Kq1LeCqueCqvC3gq4Xgq4ct4KuJ4KuLLeCrjeCrkOCroC3gq6Pgq6Yt4Kuv4KyBLeCsg+CshS3grIzgrI/grJDgrJMt4Kyo4KyqLeCssOCssuCss+CstS3grLngrLwt4K2E4K2H4K2I4K2LLeCtjeCtluCtl+CtnOCtneCtny3graPgraYt4K2v4K2x4K6C4K6D4K6FLeCuiuCuji3grpDgrpIt4K6V4K6Z4K6a4K6c4K6e4K6f4K6j4K6k4K6oLeCuquCuri3grrngrr4t4K+C4K+GLeCviOCvii3gr43gr5Dgr5fgr6Yt4K+v4LCBLeCwg+CwhS3gsIzgsI4t4LCQ4LCSLeCwqOCwqi3gsLPgsLUt4LC54LC9LeCxhOCxhi3gsYjgsYot4LGN4LGV4LGW4LGY4LGZ4LGgLeCxo+Cxpi3gsa/gsoLgsoPgsoUt4LKM4LKOLeCykOCyki3gsqjgsqot4LKz4LK1LeCyueCyvC3gs4Tgs4Yt4LOI4LOKLeCzjeCzleCzluCznuCzoC3gs6Pgs6Yt4LOv4LOx4LOy4LSC4LSD4LSFLeC0jOC0ji3gtJDgtJIt4LS64LS9LeC1hOC1hi3gtYjgtYot4LWO4LWX4LWgLeC1o+C1pi3gta/gtbot4LW/4LaC4LaD4LaFLeC2luC2mi3gtrHgtrMt4La74La94LeALeC3huC3iuC3jy3gt5Tgt5bgt5gt4Lef4Ley4Lez4LiBLeC4uuC5gC3guY7guZAt4LmZ4LqB4LqC4LqE4LqH4LqI4LqK4LqN4LqULeC6l+C6mS3gup/guqEt4Lqj4Lql4Lqn4Lqq4Lqr4LqtLeC6ueC6uy3gur3gu4At4LuE4LuG4LuILeC7jeC7kC3gu5ngu5wt4Luf4LyA4LyY4LyZ4LygLeC8qeC8teC8t+C8ueC8vi3gvYfgvYkt4L2s4L2xLeC+hOC+hi3gvpfgvpkt4L684L+G4YCALeGBieGBkC3hgp3hgqAt4YOF4YOH4YON4YOQLeGDuuGDvC3hiYjhiYot4YmN4YmQLeGJluGJmOGJmi3hiZ3hiaAt4YqI4YqKLeGKjeGKkC3hirDhirIt4Yq14Yq4LeGKvuGLgOGLgi3hi4Xhi4gt4YuW4YuYLeGMkOGMki3hjJXhjJgt4Y2a4Y2dLeGNn+GOgC3hjo/hjqAt4Y+04ZCBLeGZrOGZry3hmb/hmoEt4Zqa4ZqgLeGbquGbri3hm7DhnIAt4ZyM4ZyOLeGclOGcoC3hnLThnYAt4Z2T4Z2gLeGdrOGdri3hnbDhnbLhnbPhnoAt4Z+T4Z+X4Z+c4Z+d4Z+gLeGfqeGgiy3hoI3hoJAt4aCZ4aCgLeGht+GigC3hoqrhorAt4aO14aSALeGknOGkoC3hpKvhpLAt4aS74aWGLeGlreGlsC3hpbThpoAt4aar4aawLeGnieGnkC3hp5nhqIAt4aib4aigLeGpnuGpoC3hqbzhqb8t4aqJ4aqQLeGqmeGqp+GsgC3hrYvhrZAt4a2Z4a2rLeGts+GugC3hr7PhsIAt4bC34bGALeGxieGxjS3hsb3hs5At4bOS4bOULeGztuG0gC3ht6bht7wt4byV4byYLeG8neG8oC3hvYXhvYgt4b2N4b2QLeG9l+G9meG9m+G9neG9ny3hvb3hvoAt4b604b62LeG+vOG+vuG/gi3hv4Thv4Yt4b+M4b+QLeG/k+G/li3hv5vhv6At4b+s4b+yLeG/tOG/ti3hv7zigIzigI3igL/igYDigZTigbHigb/igpAt4oKc4oOQLeKDnOKDoeKDpS3ig7DihILihIfihIot4oST4oSV4oSZLeKEneKEpOKEpuKEqOKEqi3ihK3ihK8t4oS54oS8LeKEv+KFhS3ihYnihY7ihaAt4oaI4rCALeKwruKwsC3isZ7isaAt4rOk4rOrLeKzs+K0gC3itKXitKfitK3itLAt4rWn4rWv4rW/LeK2luK2oC3itqbitqgt4rau4rawLeK2tuK2uC3itr7it4At4reG4reILeK3juK3kC3it5bit5gt4ree4regLeK3v+K4r+OAhS3jgIfjgKEt44Cv44CxLeOAteOAuC3jgLzjgYEt44KW44KZ44Ka44KdLeOCn+OCoS3jg7rjg7wt44O/44SFLeOEreOEsS3jho7jhqAt44a644ewLeOHv+OQgC3ktrXkuIAt6b+M6oCALeqSjOqTkC3qk73qlIAt6piM6piQLeqYq+qZgC3qma/qmbQt6pm96pm/Leqal+qany3qm7HqnJct6pyf6pyiLeqeiOqeiy3qno7qnpAt6p6T6p6gLeqequqfuC3qoKfqoYAt6qGz6qKALeqjhOqjkC3qo5nqo6At6qO36qO76qSALeqkreqksC3qpZPqpaAt6qW86qaALeqngOqnjy3qp5nqqIAt6qi26qmALeqpjeqpkC3qqZnqqaAt6qm26qm66qm76qqALeqrguqrmy3qq53qq6At6quv6quyLeqrtuqsgS3qrIbqrIkt6qyO6qyRLeqsluqsoC3qrKbqrKgt6qyu6q+ALeqvquqvrOqvreqvsC3qr7nqsIAt7Z6j7Z6wLe2fhu2fiy3tn7vvpIAt76mt76mwLe+rme+sgC3vrIbvrJMt76yX76ydLe+sqO+sqi3vrLbvrLgt76y876y+762A762B762D762E762GLe+use+vky3vtL3vtZAt77aP77aSLe+3h++3sC3vt7vvuIAt77iP77igLe+4pu+4s++4tO+5jS3vuY/vubAt77m077m2Le+7vO+8kC3vvJnvvKEt77y677y/772BLe+9mu+9pi3vvr7vv4It77+H77+KLe+/j++/ki3vv5fvv5ot77+cXVwiKX0sbD17bmFtZTpcIlN5bnRheFRyZWVcIixwcm9jZXNzQ29tbWVudDpmdW5jdGlvbihlKXt2YXIgdCxyO2lmKGUudHlwZSE9PWkuUHJvZ3JhbXx8IShlLmJvZHkubGVuZ3RoPjApKXtmb3IoXy50cmFpbGluZ0NvbW1lbnRzLmxlbmd0aD4wP18udHJhaWxpbmdDb21tZW50c1swXS5yYW5nZVswXT49ZS5yYW5nZVsxXT8ocj1fLnRyYWlsaW5nQ29tbWVudHMsXy50cmFpbGluZ0NvbW1lbnRzPVtdKTpfLnRyYWlsaW5nQ29tbWVudHMubGVuZ3RoPTA6Xy5ib3R0b21SaWdodFN0YWNrLmxlbmd0aD4wJiZfLmJvdHRvbVJpZ2h0U3RhY2tbXy5ib3R0b21SaWdodFN0YWNrLmxlbmd0aC0xXS50cmFpbGluZ0NvbW1lbnRzJiZfLmJvdHRvbVJpZ2h0U3RhY2tbXy5ib3R0b21SaWdodFN0YWNrLmxlbmd0aC0xXS50cmFpbGluZ0NvbW1lbnRzWzBdLnJhbmdlWzBdPj1lLnJhbmdlWzFdJiYocj1fLmJvdHRvbVJpZ2h0U3RhY2tbXy5ib3R0b21SaWdodFN0YWNrLmxlbmd0aC0xXS50cmFpbGluZ0NvbW1lbnRzLGRlbGV0ZSBfLmJvdHRvbVJpZ2h0U3RhY2tbXy5ib3R0b21SaWdodFN0YWNrLmxlbmd0aC0xXS50cmFpbGluZ0NvbW1lbnRzKTtfLmJvdHRvbVJpZ2h0U3RhY2subGVuZ3RoPjAmJl8uYm90dG9tUmlnaHRTdGFja1tfLmJvdHRvbVJpZ2h0U3RhY2subGVuZ3RoLTFdLnJhbmdlWzBdPj1lLnJhbmdlWzBdOyl0PV8uYm90dG9tUmlnaHRTdGFjay5wb3AoKTt0P3QubGVhZGluZ0NvbW1lbnRzJiZ0LmxlYWRpbmdDb21tZW50c1t0LmxlYWRpbmdDb21tZW50cy5sZW5ndGgtMV0ucmFuZ2VbMV08PWUucmFuZ2VbMF0mJihlLmxlYWRpbmdDb21tZW50cz10LmxlYWRpbmdDb21tZW50cyxkZWxldGUgdC5sZWFkaW5nQ29tbWVudHMpOl8ubGVhZGluZ0NvbW1lbnRzLmxlbmd0aD4wJiZfLmxlYWRpbmdDb21tZW50c1tfLmxlYWRpbmdDb21tZW50cy5sZW5ndGgtMV0ucmFuZ2VbMV08PWUucmFuZ2VbMF0mJihlLmxlYWRpbmdDb21tZW50cz1fLmxlYWRpbmdDb21tZW50cyxfLmxlYWRpbmdDb21tZW50cz1bXSksciYmKGUudHJhaWxpbmdDb21tZW50cz1yKSxfLmJvdHRvbVJpZ2h0U3RhY2sucHVzaChlKX19LG1hcmtFbmQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gXy5yYW5nZSYmKGUucmFuZ2U9W3Quc3RhcnQscF0pLF8ubG9jJiYoZS5sb2M9bmV3IGVyKHZvaWQgMD09PXQuc3RhcnRMaW5lTnVtYmVyP3QubGluZU51bWJlcjp0LnN0YXJ0TGluZU51bWJlcix0LnN0YXJ0LSh2b2lkIDA9PT10LnN0YXJ0TGluZVN0YXJ0P3QubGluZVN0YXJ0OnQuc3RhcnRMaW5lU3RhcnQpLGQscC1oKSx0aGlzLnBvc3RQcm9jZXNzKGUpKSxfLmF0dGFjaENvbW1lbnQmJnRoaXMucHJvY2Vzc0NvbW1lbnQoZSksZX0scG9zdFByb2Nlc3M6ZnVuY3Rpb24oZSl7cmV0dXJuIF8uc291cmNlJiYoZS5sb2Muc291cmNlPV8uc291cmNlKSxlfSxjcmVhdGVBcnJheUV4cHJlc3Npb246ZnVuY3Rpb24oZSl7cmV0dXJue3R5cGU6aS5BcnJheUV4cHJlc3Npb24sZWxlbWVudHM6ZX19LGNyZWF0ZUFzc2lnbm1lbnRFeHByZXNzaW9uOmZ1bmN0aW9uKGUsdCxyKXtyZXR1cm57dHlwZTppLkFzc2lnbm1lbnRFeHByZXNzaW9uLG9wZXJhdG9yOmUsbGVmdDp0LHJpZ2h0OnJ9fSxjcmVhdGVCaW5hcnlFeHByZXNzaW9uOmZ1bmN0aW9uKGUsdCxyKXtyZXR1cm57dHlwZTpcInx8XCI9PT1lfHxcIiYmXCI9PT1lP2kuTG9naWNhbEV4cHJlc3Npb246aS5CaW5hcnlFeHByZXNzaW9uLG9wZXJhdG9yOmUsbGVmdDp0LHJpZ2h0OnJ9fSxjcmVhdGVCbG9ja1N0YXRlbWVudDpmdW5jdGlvbihlKXtyZXR1cm57dHlwZTppLkJsb2NrU3RhdGVtZW50LGJvZHk6ZX19LGNyZWF0ZUJyZWFrU3RhdGVtZW50OmZ1bmN0aW9uKGUpe3JldHVybnt0eXBlOmkuQnJlYWtTdGF0ZW1lbnQsbGFiZWw6ZX19LGNyZWF0ZUNhbGxFeHByZXNzaW9uOmZ1bmN0aW9uKGUsdCl7cmV0dXJue3R5cGU6aS5DYWxsRXhwcmVzc2lvbixjYWxsZWU6ZSxhcmd1bWVudHM6dH19LGNyZWF0ZUNhdGNoQ2xhdXNlOmZ1bmN0aW9uKGUsdCl7cmV0dXJue3R5cGU6aS5DYXRjaENsYXVzZSxwYXJhbTplLGJvZHk6dH19LGNyZWF0ZUNvbmRpdGlvbmFsRXhwcmVzc2lvbjpmdW5jdGlvbihlLHQscil7cmV0dXJue3R5cGU6aS5Db25kaXRpb25hbEV4cHJlc3Npb24sdGVzdDplLGNvbnNlcXVlbnQ6dCxhbHRlcm5hdGU6cn19LGNyZWF0ZUNvbnRpbnVlU3RhdGVtZW50OmZ1bmN0aW9uKGUpe3JldHVybnt0eXBlOmkuQ29udGludWVTdGF0ZW1lbnQsbGFiZWw6ZX19LGNyZWF0ZURlYnVnZ2VyU3RhdGVtZW50OmZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6aS5EZWJ1Z2dlclN0YXRlbWVudH19LGNyZWF0ZURvV2hpbGVTdGF0ZW1lbnQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm57dHlwZTppLkRvV2hpbGVTdGF0ZW1lbnQsYm9keTplLHRlc3Q6dH19LGNyZWF0ZUVtcHR5U3RhdGVtZW50OmZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6aS5FbXB0eVN0YXRlbWVudH19LGNyZWF0ZUV4cHJlc3Npb25TdGF0ZW1lbnQ6ZnVuY3Rpb24oZSl7cmV0dXJue3R5cGU6aS5FeHByZXNzaW9uU3RhdGVtZW50LGV4cHJlc3Npb246ZX19LGNyZWF0ZUZvclN0YXRlbWVudDpmdW5jdGlvbihlLHQscixuKXtyZXR1cm57dHlwZTppLkZvclN0YXRlbWVudCxpbml0OmUsdGVzdDp0LHVwZGF0ZTpyLGJvZHk6bn19LGNyZWF0ZUZvckluU3RhdGVtZW50OmZ1bmN0aW9uKGUsdCxyKXtyZXR1cm57dHlwZTppLkZvckluU3RhdGVtZW50LGxlZnQ6ZSxyaWdodDp0LGJvZHk6cixlYWNoOiExfX0sY3JlYXRlRnVuY3Rpb25EZWNsYXJhdGlvbjpmdW5jdGlvbihlLHQscixuKXtyZXR1cm57dHlwZTppLkZ1bmN0aW9uRGVjbGFyYXRpb24saWQ6ZSxwYXJhbXM6dCxkZWZhdWx0czpyLGJvZHk6bixyZXN0Om51bGwsZ2VuZXJhdG9yOiExLGV4cHJlc3Npb246ITF9fSxjcmVhdGVGdW5jdGlvbkV4cHJlc3Npb246ZnVuY3Rpb24oZSx0LHIsbil7cmV0dXJue3R5cGU6aS5GdW5jdGlvbkV4cHJlc3Npb24saWQ6ZSxwYXJhbXM6dCxkZWZhdWx0czpyLGJvZHk6bixyZXN0Om51bGwsZ2VuZXJhdG9yOiExLGV4cHJlc3Npb246ITF9fSxjcmVhdGVJZGVudGlmaWVyOmZ1bmN0aW9uKGUpe3JldHVybnt0eXBlOmkuSWRlbnRpZmllcixuYW1lOmV9fSxjcmVhdGVJZlN0YXRlbWVudDpmdW5jdGlvbihlLHQscil7cmV0dXJue3R5cGU6aS5JZlN0YXRlbWVudCx0ZXN0OmUsY29uc2VxdWVudDp0LGFsdGVybmF0ZTpyfX0sY3JlYXRlTGFiZWxlZFN0YXRlbWVudDpmdW5jdGlvbihlLHQpe3JldHVybnt0eXBlOmkuTGFiZWxlZFN0YXRlbWVudCxsYWJlbDplLGJvZHk6dH19LGNyZWF0ZUxpdGVyYWw6ZnVuY3Rpb24oZSl7cmV0dXJue3R5cGU6aS5MaXRlcmFsLHZhbHVlOmUudmFsdWUscmF3OnUuc2xpY2UoZS5zdGFydCxlLmVuZCl9fSxjcmVhdGVNZW1iZXJFeHByZXNzaW9uOmZ1bmN0aW9uKGUsdCxyKXtyZXR1cm57dHlwZTppLk1lbWJlckV4cHJlc3Npb24sY29tcHV0ZWQ6XCJbXCI9PT1lLG9iamVjdDp0LHByb3BlcnR5OnJ9fSxjcmVhdGVOZXdFeHByZXNzaW9uOmZ1bmN0aW9uKGUsdCl7cmV0dXJue3R5cGU6aS5OZXdFeHByZXNzaW9uLGNhbGxlZTplLGFyZ3VtZW50czp0fX0sY3JlYXRlT2JqZWN0RXhwcmVzc2lvbjpmdW5jdGlvbihlKXtyZXR1cm57dHlwZTppLk9iamVjdEV4cHJlc3Npb24scHJvcGVydGllczplfX0sY3JlYXRlUG9zdGZpeEV4cHJlc3Npb246ZnVuY3Rpb24oZSx0KXtyZXR1cm57dHlwZTppLlVwZGF0ZUV4cHJlc3Npb24sb3BlcmF0b3I6ZSxhcmd1bWVudDp0LHByZWZpeDohMX19LGNyZWF0ZVByb2dyYW06ZnVuY3Rpb24oZSl7cmV0dXJue3R5cGU6aS5Qcm9ncmFtLGJvZHk6ZX19LGNyZWF0ZVByb3BlcnR5OmZ1bmN0aW9uKGUsdCxyKXtyZXR1cm57dHlwZTppLlByb3BlcnR5LGtleTp0LHZhbHVlOnIsa2luZDplfX0sY3JlYXRlUmV0dXJuU3RhdGVtZW50OmZ1bmN0aW9uKGUpe3JldHVybnt0eXBlOmkuUmV0dXJuU3RhdGVtZW50LGFyZ3VtZW50OmV9fSxjcmVhdGVTZXF1ZW5jZUV4cHJlc3Npb246ZnVuY3Rpb24oZSl7cmV0dXJue3R5cGU6aS5TZXF1ZW5jZUV4cHJlc3Npb24sZXhwcmVzc2lvbnM6ZX19LGNyZWF0ZVN3aXRjaENhc2U6ZnVuY3Rpb24oZSx0KXtyZXR1cm57dHlwZTppLlN3aXRjaENhc2UsdGVzdDplLGNvbnNlcXVlbnQ6dH19LGNyZWF0ZVN3aXRjaFN0YXRlbWVudDpmdW5jdGlvbihlLHQpe3JldHVybnt0eXBlOmkuU3dpdGNoU3RhdGVtZW50LGRpc2NyaW1pbmFudDplLGNhc2VzOnR9fSxjcmVhdGVUaGlzRXhwcmVzc2lvbjpmdW5jdGlvbigpe3JldHVybnt0eXBlOmkuVGhpc0V4cHJlc3Npb259fSxjcmVhdGVUaHJvd1N0YXRlbWVudDpmdW5jdGlvbihlKXtyZXR1cm57dHlwZTppLlRocm93U3RhdGVtZW50LGFyZ3VtZW50OmV9fSxjcmVhdGVUcnlTdGF0ZW1lbnQ6ZnVuY3Rpb24oZSx0LHIsbil7cmV0dXJue3R5cGU6aS5UcnlTdGF0ZW1lbnQsYmxvY2s6ZSxndWFyZGVkSGFuZGxlcnM6dCxoYW5kbGVyczpyLGZpbmFsaXplcjpufX0sY3JlYXRlVW5hcnlFeHByZXNzaW9uOmZ1bmN0aW9uKGUsdCl7cmV0dXJuXCIrK1wiPT09ZXx8XCItLVwiPT09ZT97dHlwZTppLlVwZGF0ZUV4cHJlc3Npb24sb3BlcmF0b3I6ZSxhcmd1bWVudDp0LHByZWZpeDohMH06e3R5cGU6aS5VbmFyeUV4cHJlc3Npb24sb3BlcmF0b3I6ZSxhcmd1bWVudDp0LHByZWZpeDohMH19LGNyZWF0ZVZhcmlhYmxlRGVjbGFyYXRpb246ZnVuY3Rpb24oZSx0KXtyZXR1cm57dHlwZTppLlZhcmlhYmxlRGVjbGFyYXRpb24sZGVjbGFyYXRpb25zOmUsa2luZDp0fX0sY3JlYXRlVmFyaWFibGVEZWNsYXJhdG9yOmZ1bmN0aW9uKGUsdCl7cmV0dXJue3R5cGU6aS5WYXJpYWJsZURlY2xhcmF0b3IsaWQ6ZSxpbml0OnR9fSxjcmVhdGVXaGlsZVN0YXRlbWVudDpmdW5jdGlvbihlLHQpe3JldHVybnt0eXBlOmkuV2hpbGVTdGF0ZW1lbnQsdGVzdDplLGJvZHk6dH19LGNyZWF0ZVdpdGhTdGF0ZW1lbnQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm57dHlwZTppLldpdGhTdGF0ZW1lbnQsb2JqZWN0OmUsYm9keTp0fX19LGUudmVyc2lvbj1cIjEuMi4yXCIsZS50b2tlbml6ZT10aSxlLnBhcnNlPXRhLGUuU3ludGF4PWZ1bmN0aW9uKCl7dmFyIGUsdD17fTtmb3IoZSBpblwiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5jcmVhdGUmJih0PU9iamVjdC5jcmVhdGUobnVsbCkpLGkpaS5oYXNPd25Qcm9wZXJ0eShlKSYmKHRbZV09aVtlXSk7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmZyZWV6ZSYmT2JqZWN0LmZyZWV6ZSh0KSx0fSgpfSl9LHt9XSwxOltmdW5jdGlvbihlLHQscil7KGZ1bmN0aW9uKG4pe3ZhciBpPWZ1bmN0aW9uKCl7dmFyIGU9e3RyYWNlOmZ1bmN0aW9uKCl7fSx5eTp7fSxzeW1ib2xzXzp7ZXJyb3I6MixKU09OX1BBVEg6MyxET0xMQVI6NCxQQVRIX0NPTVBPTkVOVFM6NSxMRUFESU5HX0NISUxEX01FTUJFUl9FWFBSRVNTSU9OOjYsUEFUSF9DT01QT05FTlQ6NyxNRU1CRVJfQ09NUE9ORU5UOjgsU1VCU0NSSVBUX0NPTVBPTkVOVDo5LENISUxEX01FTUJFUl9DT01QT05FTlQ6MTAsREVTQ0VOREFOVF9NRU1CRVJfQ09NUE9ORU5UOjExLERPVDoxMixNRU1CRVJfRVhQUkVTU0lPTjoxMyxET1RfRE9UOjE0LFNUQVI6MTUsSURFTlRJRklFUjoxNixTQ1JJUFRfRVhQUkVTU0lPTjoxNyxJTlRFR0VSOjE4LEVORDoxOSxDSElMRF9TVUJTQ1JJUFRfQ09NUE9ORU5UOjIwLERFU0NFTkRBTlRfU1VCU0NSSVBUX0NPTVBPTkVOVDoyMSxcIltcIjoyMixTVUJTQ1JJUFQ6MjMsXCJdXCI6MjQsU1VCU0NSSVBUX0VYUFJFU1NJT046MjUsU1VCU0NSSVBUX0VYUFJFU1NJT05fTElTVDoyNixTVUJTQ1JJUFRfRVhQUkVTU0lPTl9MSVNUQUJMRToyNyxcIixcIjoyOCxTVFJJTkdfTElURVJBTDoyOSxBUlJBWV9TTElDRTozMCxGSUxURVJfRVhQUkVTU0lPTjozMSxRUV9TVFJJTkc6MzIsUV9TVFJJTkc6MzMsJGFjY2VwdDowLCRlbmQ6MX0sdGVybWluYWxzXzp7MjpcImVycm9yXCIsNDpcIkRPTExBUlwiLDEyOlwiRE9UXCIsMTQ6XCJET1RfRE9UXCIsMTU6XCJTVEFSXCIsMTY6XCJJREVOVElGSUVSXCIsMTc6XCJTQ1JJUFRfRVhQUkVTU0lPTlwiLDE4OlwiSU5URUdFUlwiLDE5OlwiRU5EXCIsMjI6XCJbXCIsMjQ6XCJdXCIsMjg6XCIsXCIsMzA6XCJBUlJBWV9TTElDRVwiLDMxOlwiRklMVEVSX0VYUFJFU1NJT05cIiwzMjpcIlFRX1NUUklOR1wiLDMzOlwiUV9TVFJJTkdcIn0scHJvZHVjdGlvbnNfOlswLFszLDFdLFszLDJdLFszLDFdLFszLDJdLFs1LDFdLFs1LDJdLFs3LDFdLFs3LDFdLFs4LDFdLFs4LDFdLFsxMCwyXSxbNiwxXSxbMTEsMl0sWzEzLDFdLFsxMywxXSxbMTMsMV0sWzEzLDFdLFsxMywxXSxbOSwxXSxbOSwxXSxbMjAsM10sWzIxLDRdLFsyMywxXSxbMjMsMV0sWzI2LDFdLFsyNiwzXSxbMjcsMV0sWzI3LDFdLFsyNywxXSxbMjUsMV0sWzI1LDFdLFsyNSwxXSxbMjksMV0sWzI5LDFdXSxwZXJmb3JtQWN0aW9uOmZ1bmN0aW9uKGUscixuLGksYSxvLHMpe2kuYXN0fHwoaS5hc3Q9dCx0LmluaXRpYWxpemUoKSk7dmFyIGw9by5sZW5ndGgtMTtzd2l0Y2goYSl7Y2FzZSAxOnJldHVybiBpLmFzdC5zZXQoe2V4cHJlc3Npb246e3R5cGU6XCJyb290XCIsdmFsdWU6b1tsXX19KSxpLmFzdC51bnNoaWZ0KCksaS5hc3QueWllbGQoKTtjYXNlIDI6cmV0dXJuIGkuYXN0LnNldCh7ZXhwcmVzc2lvbjp7dHlwZTpcInJvb3RcIix2YWx1ZTpvW2wtMV19fSksaS5hc3QudW5zaGlmdCgpLGkuYXN0LnlpZWxkKCk7Y2FzZSAzOnJldHVybiBpLmFzdC51bnNoaWZ0KCksaS5hc3QueWllbGQoKTtjYXNlIDQ6cmV0dXJuIGkuYXN0LnNldCh7b3BlcmF0aW9uOlwibWVtYmVyXCIsc2NvcGU6XCJjaGlsZFwiLGV4cHJlc3Npb246e3R5cGU6XCJpZGVudGlmaWVyXCIsdmFsdWU6b1tsLTFdfX0pLGkuYXN0LnVuc2hpZnQoKSxpLmFzdC55aWVsZCgpO2Nhc2UgNTpjYXNlIDY6Y2FzZSAxMTpjYXNlIDEzOmNhc2UgMTg6Y2FzZSAyMTpjYXNlIDIyOmNhc2UgMjM6YnJlYWs7Y2FzZSA3OmkuYXN0LnNldCh7b3BlcmF0aW9uOlwibWVtYmVyXCJ9KSxpLmFzdC5wdXNoKCk7YnJlYWs7Y2FzZSA4OmkuYXN0LnNldCh7b3BlcmF0aW9uOlwic3Vic2NyaXB0XCJ9KSxpLmFzdC5wdXNoKCk7YnJlYWs7Y2FzZSA5OmNhc2UgMTk6aS5hc3Quc2V0KHtzY29wZTpcImNoaWxkXCJ9KTticmVhaztjYXNlIDEwOmNhc2UgMjA6aS5hc3Quc2V0KHtzY29wZTpcImRlc2NlbmRhbnRcIn0pO2JyZWFrO2Nhc2UgMTI6aS5hc3Quc2V0KHtzY29wZTpcImNoaWxkXCIsb3BlcmF0aW9uOlwibWVtYmVyXCJ9KTticmVhaztjYXNlIDE0OmkuYXN0LnNldCh7ZXhwcmVzc2lvbjp7dHlwZTpcIndpbGRjYXJkXCIsdmFsdWU6b1tsXX19KTticmVhaztjYXNlIDE1OmkuYXN0LnNldCh7ZXhwcmVzc2lvbjp7dHlwZTpcImlkZW50aWZpZXJcIix2YWx1ZTpvW2xdfX0pO2JyZWFrO2Nhc2UgMTY6aS5hc3Quc2V0KHtleHByZXNzaW9uOnt0eXBlOlwic2NyaXB0X2V4cHJlc3Npb25cIix2YWx1ZTpvW2xdfX0pO2JyZWFrO2Nhc2UgMTc6aS5hc3Quc2V0KHtleHByZXNzaW9uOnt0eXBlOlwibnVtZXJpY19saXRlcmFsXCIsdmFsdWU6cGFyc2VJbnQob1tsXSl9fSk7YnJlYWs7Y2FzZSAyNDpvW2xdLmxlbmd0aD4xP2kuYXN0LnNldCh7ZXhwcmVzc2lvbjp7dHlwZTpcInVuaW9uXCIsdmFsdWU6b1tsXX19KTp0aGlzLiQ9b1tsXTticmVhaztjYXNlIDI1OnRoaXMuJD1bb1tsXV07YnJlYWs7Y2FzZSAyNjp0aGlzLiQ9b1tsLTJdLmNvbmNhdChvW2xdKTticmVhaztjYXNlIDI3OnRoaXMuJD17ZXhwcmVzc2lvbjp7dHlwZTpcIm51bWVyaWNfbGl0ZXJhbFwiLHZhbHVlOnBhcnNlSW50KG9bbF0pfX0saS5hc3Quc2V0KHRoaXMuJCk7YnJlYWs7Y2FzZSAyODp0aGlzLiQ9e2V4cHJlc3Npb246e3R5cGU6XCJzdHJpbmdfbGl0ZXJhbFwiLHZhbHVlOm9bbF19fSxpLmFzdC5zZXQodGhpcy4kKTticmVhaztjYXNlIDI5OnRoaXMuJD17ZXhwcmVzc2lvbjp7dHlwZTpcInNsaWNlXCIsdmFsdWU6b1tsXX19LGkuYXN0LnNldCh0aGlzLiQpO2JyZWFrO2Nhc2UgMzA6dGhpcy4kPXtleHByZXNzaW9uOnt0eXBlOlwid2lsZGNhcmRcIix2YWx1ZTpvW2xdfX0saS5hc3Quc2V0KHRoaXMuJCk7YnJlYWs7Y2FzZSAzMTp0aGlzLiQ9e2V4cHJlc3Npb246e3R5cGU6XCJzY3JpcHRfZXhwcmVzc2lvblwiLHZhbHVlOm9bbF19fSxpLmFzdC5zZXQodGhpcy4kKTticmVhaztjYXNlIDMyOnRoaXMuJD17ZXhwcmVzc2lvbjp7dHlwZTpcImZpbHRlcl9leHByZXNzaW9uXCIsdmFsdWU6b1tsXX19LGkuYXN0LnNldCh0aGlzLiQpO2JyZWFrO2Nhc2UgMzM6Y2FzZSAzNDp0aGlzLiQ9b1tsXX19LHRhYmxlOlt7MzoxLDQ6WzEsMl0sNjozLDEzOjQsMTU6WzEsNV0sMTY6WzEsNl0sMTc6WzEsN10sMTg6WzEsOF0sMTk6WzEsOV19LHsxOlszXX0sezE6WzIsMV0sNToxMCw3OjExLDg6MTIsOToxMywxMDoxNCwxMToxNSwxMjpbMSwxOF0sMTQ6WzEsMTldLDIwOjE2LDIxOjE3LDIyOlsxLDIwXX0sezE6WzIsM10sNToyMSw3OjExLDg6MTIsOToxMywxMDoxNCwxMToxNSwxMjpbMSwxOF0sMTQ6WzEsMTldLDIwOjE2LDIxOjE3LDIyOlsxLDIwXX0sezE6WzIsMTJdLDEyOlsyLDEyXSwxNDpbMiwxMl0sMjI6WzIsMTJdfSx7MTpbMiwxNF0sMTI6WzIsMTRdLDE0OlsyLDE0XSwyMjpbMiwxNF19LHsxOlsyLDE1XSwxMjpbMiwxNV0sMTQ6WzIsMTVdLDIyOlsyLDE1XX0sezE6WzIsMTZdLDEyOlsyLDE2XSwxNDpbMiwxNl0sMjI6WzIsMTZdfSx7MTpbMiwxN10sMTI6WzIsMTddLDE0OlsyLDE3XSwyMjpbMiwxN119LHsxOlsyLDE4XSwxMjpbMiwxOF0sMTQ6WzIsMThdLDIyOlsyLDE4XX0sezE6WzIsMl0sNzoyMiw4OjEyLDk6MTMsMTA6MTQsMTE6MTUsMTI6WzEsMThdLDE0OlsxLDE5XSwyMDoxNiwyMToxNywyMjpbMSwyMF19LHsxOlsyLDVdLDEyOlsyLDVdLDE0OlsyLDVdLDIyOlsyLDVdfSx7MTpbMiw3XSwxMjpbMiw3XSwxNDpbMiw3XSwyMjpbMiw3XX0sezE6WzIsOF0sMTI6WzIsOF0sMTQ6WzIsOF0sMjI6WzIsOF19LHsxOlsyLDldLDEyOlsyLDldLDE0OlsyLDldLDIyOlsyLDldfSx7MTpbMiwxMF0sMTI6WzIsMTBdLDE0OlsyLDEwXSwyMjpbMiwxMF19LHsxOlsyLDE5XSwxMjpbMiwxOV0sMTQ6WzIsMTldLDIyOlsyLDE5XX0sezE6WzIsMjBdLDEyOlsyLDIwXSwxNDpbMiwyMF0sMjI6WzIsMjBdfSx7MTM6MjMsMTU6WzEsNV0sMTY6WzEsNl0sMTc6WzEsN10sMTg6WzEsOF0sMTk6WzEsOV19LHsxMzoyNCwxNTpbMSw1XSwxNjpbMSw2XSwxNzpbMSw3XSwxODpbMSw4XSwxOTpbMSw5XSwyMjpbMSwyNV19LHsxNTpbMSwyOV0sMTc6WzEsMzBdLDE4OlsxLDMzXSwyMzoyNiwyNToyNywyNjoyOCwyNzozMiwyOTozNCwzMDpbMSwzNV0sMzE6WzEsMzFdLDMyOlsxLDM2XSwzMzpbMSwzN119LHsxOlsyLDRdLDc6MjIsODoxMiw5OjEzLDEwOjE0LDExOjE1LDEyOlsxLDE4XSwxNDpbMSwxOV0sMjA6MTYsMjE6MTcsMjI6WzEsMjBdfSx7MTpbMiw2XSwxMjpbMiw2XSwxNDpbMiw2XSwyMjpbMiw2XX0sezE6WzIsMTFdLDEyOlsyLDExXSwxNDpbMiwxMV0sMjI6WzIsMTFdfSx7MTpbMiwxM10sMTI6WzIsMTNdLDE0OlsyLDEzXSwyMjpbMiwxM119LHsxNTpbMSwyOV0sMTc6WzEsMzBdLDE4OlsxLDMzXSwyMzozOCwyNToyNywyNjoyOCwyNzozMiwyOTozNCwzMDpbMSwzNV0sMzE6WzEsMzFdLDMyOlsxLDM2XSwzMzpbMSwzN119LHsyNDpbMSwzOV19LHsyNDpbMiwyM119LHsyNDpbMiwyNF0sMjg6WzEsNDBdfSx7MjQ6WzIsMzBdfSx7MjQ6WzIsMzFdfSx7MjQ6WzIsMzJdfSx7MjQ6WzIsMjVdLDI4OlsyLDI1XX0sezI0OlsyLDI3XSwyODpbMiwyN119LHsyNDpbMiwyOF0sMjg6WzIsMjhdfSx7MjQ6WzIsMjldLDI4OlsyLDI5XX0sezI0OlsyLDMzXSwyODpbMiwzM119LHsyNDpbMiwzNF0sMjg6WzIsMzRdfSx7MjQ6WzEsNDFdfSx7MTpbMiwyMV0sMTI6WzIsMjFdLDE0OlsyLDIxXSwyMjpbMiwyMV19LHsxODpbMSwzM10sMjc6NDIsMjk6MzQsMzA6WzEsMzVdLDMyOlsxLDM2XSwzMzpbMSwzN119LHsxOlsyLDIyXSwxMjpbMiwyMl0sMTQ6WzIsMjJdLDIyOlsyLDIyXX0sezI0OlsyLDI2XSwyODpbMiwyNl19XSxkZWZhdWx0QWN0aW9uczp7Mjc6WzIsMjNdLDI5OlsyLDMwXSwzMDpbMiwzMV0sMzE6WzIsMzJdfSxwYXJzZUVycm9yOmZ1bmN0aW9uKGUsdCl7aWYodC5yZWNvdmVyYWJsZSl0aGlzLnRyYWNlKGUpO2Vsc2UgdGhyb3cgRXJyb3IoZSl9LHBhcnNlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMscj1bMF0sbj1bbnVsbF0saT1bXSxhPXRoaXMudGFibGUsbz1cIlwiLHM9MCxsPTAsdT0wLGM9MixwPTEsZD1pLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO3RoaXMubGV4ZXIuc2V0SW5wdXQoZSksdGhpcy5sZXhlci55eT10aGlzLnl5LHRoaXMueXkubGV4ZXI9dGhpcy5sZXhlcix0aGlzLnl5LnBhcnNlcj10aGlzLHZvaWQgMD09PXRoaXMubGV4ZXIueXlsbG9jJiYodGhpcy5sZXhlci55eWxsb2M9e30pO3ZhciBoPXRoaXMubGV4ZXIueXlsbG9jO2kucHVzaChoKTt2YXIgZj10aGlzLmxleGVyLm9wdGlvbnMmJnRoaXMubGV4ZXIub3B0aW9ucy5yYW5nZXM7ZnVuY3Rpb24gbSgpe3ZhciBlO3JldHVyblwibnVtYmVyXCIhPXR5cGVvZihlPXQubGV4ZXIubGV4KCl8fHApJiYoZT10LnN5bWJvbHNfW2VdfHxlKSxlfVwiZnVuY3Rpb25cIj09dHlwZW9mIHRoaXMueXkucGFyc2VFcnJvcj90aGlzLnBhcnNlRXJyb3I9dGhpcy55eS5wYXJzZUVycm9yOnRoaXMucGFyc2VFcnJvcj1PYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcykucGFyc2VFcnJvcjtmb3IodmFyIGcseSxfLHYsYix3LFMsRSxBLHg9e307Oyl7aWYoXz1yW3IubGVuZ3RoLTFdLHRoaXMuZGVmYXVsdEFjdGlvbnNbX10/dj10aGlzLmRlZmF1bHRBY3Rpb25zW19dOihudWxsPT1nJiYoZz1tKCkpLHY9YVtfXSYmYVtfXVtnXSksdm9pZCAwPT09dnx8IXYubGVuZ3RofHwhdlswXSl7dmFyIGs9XCJcIjtmb3IodyBpbiBBPVtdLGFbX10pdGhpcy50ZXJtaW5hbHNfW3ddJiZ3PmMmJkEucHVzaChcIidcIit0aGlzLnRlcm1pbmFsc19bd10rXCInXCIpO2s9dGhpcy5sZXhlci5zaG93UG9zaXRpb24/XCJQYXJzZSBlcnJvciBvbiBsaW5lIFwiKyhzKzEpK1wiOlxcblwiK3RoaXMubGV4ZXIuc2hvd1Bvc2l0aW9uKCkrXCJcXG5FeHBlY3RpbmcgXCIrQS5qb2luKFwiLCBcIikrXCIsIGdvdCAnXCIrKHRoaXMudGVybWluYWxzX1tnXXx8ZykrXCInXCI6XCJQYXJzZSBlcnJvciBvbiBsaW5lIFwiKyhzKzEpK1wiOiBVbmV4cGVjdGVkIFwiKyhnPT1wP1wiZW5kIG9mIGlucHV0XCI6XCInXCIrKHRoaXMudGVybWluYWxzX1tnXXx8ZykrXCInXCIpLHRoaXMucGFyc2VFcnJvcihrLHt0ZXh0OnRoaXMubGV4ZXIubWF0Y2gsdG9rZW46dGhpcy50ZXJtaW5hbHNfW2ddfHxnLGxpbmU6dGhpcy5sZXhlci55eWxpbmVubyxsb2M6aCxleHBlY3RlZDpBfSl9aWYodlswXWluc3RhbmNlb2YgQXJyYXkmJnYubGVuZ3RoPjEpdGhyb3cgRXJyb3IoXCJQYXJzZSBFcnJvcjogbXVsdGlwbGUgYWN0aW9ucyBwb3NzaWJsZSBhdCBzdGF0ZTogXCIrXytcIiwgdG9rZW46IFwiK2cpO3N3aXRjaCh2WzBdKXtjYXNlIDE6ci5wdXNoKGcpLG4ucHVzaCh0aGlzLmxleGVyLnl5dGV4dCksaS5wdXNoKHRoaXMubGV4ZXIueXlsbG9jKSxyLnB1c2godlsxXSksZz1udWxsLHk/KGc9eSx5PW51bGwpOihsPXRoaXMubGV4ZXIueXlsZW5nLG89dGhpcy5sZXhlci55eXRleHQscz10aGlzLmxleGVyLnl5bGluZW5vLGg9dGhpcy5sZXhlci55eWxsb2MsdT4wJiZ1LS0pO2JyZWFrO2Nhc2UgMjppZihTPXRoaXMucHJvZHVjdGlvbnNfW3ZbMV1dWzFdLHguJD1uW24ubGVuZ3RoLVNdLHguXyQ9e2ZpcnN0X2xpbmU6aVtpLmxlbmd0aC0oU3x8MSldLmZpcnN0X2xpbmUsbGFzdF9saW5lOmlbaS5sZW5ndGgtMV0ubGFzdF9saW5lLGZpcnN0X2NvbHVtbjppW2kubGVuZ3RoLShTfHwxKV0uZmlyc3RfY29sdW1uLGxhc3RfY29sdW1uOmlbaS5sZW5ndGgtMV0ubGFzdF9jb2x1bW59LGYmJih4Ll8kLnJhbmdlPVtpW2kubGVuZ3RoLShTfHwxKV0ucmFuZ2VbMF0saVtpLmxlbmd0aC0xXS5yYW5nZVsxXV0pLHZvaWQgMCE9PShiPXRoaXMucGVyZm9ybUFjdGlvbi5hcHBseSh4LFtvLGwscyx0aGlzLnl5LHZbMV0sbixpXS5jb25jYXQoZCkpKSlyZXR1cm4gYjtTJiYocj1yLnNsaWNlKDAsLTEqUyoyKSxuPW4uc2xpY2UoMCwtMSpTKSxpPWkuc2xpY2UoMCwtMSpTKSksci5wdXNoKHRoaXMucHJvZHVjdGlvbnNfW3ZbMV1dWzBdKSxuLnB1c2goeC4kKSxpLnB1c2goeC5fJCksRT1hW3Jbci5sZW5ndGgtMl1dW3Jbci5sZW5ndGgtMV1dLHIucHVzaChFKTticmVhaztjYXNlIDM6cmV0dXJuITB9fXJldHVybiEwfX0sdD17aW5pdGlhbGl6ZTpmdW5jdGlvbigpe3RoaXMuX25vZGVzPVtdLHRoaXMuX25vZGU9e30sdGhpcy5fc3Rhc2g9W119LHNldDpmdW5jdGlvbihlKXtmb3IodmFyIHQgaW4gZSl0aGlzLl9ub2RlW3RdPWVbdF07cmV0dXJuIHRoaXMuX25vZGV9LG5vZGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGgmJih0aGlzLl9ub2RlPWUpLHRoaXMuX25vZGV9LHB1c2g6ZnVuY3Rpb24oKXt0aGlzLl9ub2Rlcy5wdXNoKHRoaXMuX25vZGUpLHRoaXMuX25vZGU9e319LHVuc2hpZnQ6ZnVuY3Rpb24oKXt0aGlzLl9ub2Rlcy51bnNoaWZ0KHRoaXMuX25vZGUpLHRoaXMuX25vZGU9e319LHlpZWxkOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fbm9kZXM7cmV0dXJuIHRoaXMuaW5pdGlhbGl6ZSgpLGV9fTtmdW5jdGlvbiByKCl7dGhpcy55eT17fX1yZXR1cm4gZS5sZXhlcj1mdW5jdGlvbigpe3JldHVybntFT0Y6MSxwYXJzZUVycm9yOmZ1bmN0aW9uKGUsdCl7aWYodGhpcy55eS5wYXJzZXIpdGhpcy55eS5wYXJzZXIucGFyc2VFcnJvcihlLHQpO2Vsc2UgdGhyb3cgRXJyb3IoZSl9LHNldElucHV0OmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9pbnB1dD1lLHRoaXMuX21vcmU9dGhpcy5fYmFja3RyYWNrPXRoaXMuZG9uZT0hMSx0aGlzLnl5bGluZW5vPXRoaXMueXlsZW5nPTAsdGhpcy55eXRleHQ9dGhpcy5tYXRjaGVkPXRoaXMubWF0Y2g9XCJcIix0aGlzLmNvbmRpdGlvblN0YWNrPVtcIklOSVRJQUxcIl0sdGhpcy55eWxsb2M9e2ZpcnN0X2xpbmU6MSxmaXJzdF9jb2x1bW46MCxsYXN0X2xpbmU6MSxsYXN0X2NvbHVtbjowfSx0aGlzLm9wdGlvbnMucmFuZ2VzJiYodGhpcy55eWxsb2MucmFuZ2U9WzAsMF0pLHRoaXMub2Zmc2V0PTAsdGhpc30saW5wdXQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9pbnB1dFswXTtyZXR1cm4gdGhpcy55eXRleHQrPWUsdGhpcy55eWxlbmcrKyx0aGlzLm9mZnNldCsrLHRoaXMubWF0Y2grPWUsdGhpcy5tYXRjaGVkKz1lLGUubWF0Y2goLyg/Olxcclxcbj98XFxuKS4qL2cpPyh0aGlzLnl5bGluZW5vKyssdGhpcy55eWxsb2MubGFzdF9saW5lKyspOnRoaXMueXlsbG9jLmxhc3RfY29sdW1uKyssdGhpcy5vcHRpb25zLnJhbmdlcyYmdGhpcy55eWxsb2MucmFuZ2VbMV0rKyx0aGlzLl9pbnB1dD10aGlzLl9pbnB1dC5zbGljZSgxKSxlfSx1bnB1dDpmdW5jdGlvbihlKXt2YXIgdD1lLmxlbmd0aCxyPWUuc3BsaXQoLyg/Olxcclxcbj98XFxuKS9nKTt0aGlzLl9pbnB1dD1lK3RoaXMuX2lucHV0LHRoaXMueXl0ZXh0PXRoaXMueXl0ZXh0LnN1YnN0cigwLHRoaXMueXl0ZXh0Lmxlbmd0aC10LTEpLHRoaXMub2Zmc2V0LT10O3ZhciBuPXRoaXMubWF0Y2guc3BsaXQoLyg/Olxcclxcbj98XFxuKS9nKTt0aGlzLm1hdGNoPXRoaXMubWF0Y2guc3Vic3RyKDAsdGhpcy5tYXRjaC5sZW5ndGgtMSksdGhpcy5tYXRjaGVkPXRoaXMubWF0Y2hlZC5zdWJzdHIoMCx0aGlzLm1hdGNoZWQubGVuZ3RoLTEpLHIubGVuZ3RoLTEmJih0aGlzLnl5bGluZW5vLT1yLmxlbmd0aC0xKTt2YXIgaT10aGlzLnl5bGxvYy5yYW5nZTtyZXR1cm4gdGhpcy55eWxsb2M9e2ZpcnN0X2xpbmU6dGhpcy55eWxsb2MuZmlyc3RfbGluZSxsYXN0X2xpbmU6dGhpcy55eWxpbmVubysxLGZpcnN0X2NvbHVtbjp0aGlzLnl5bGxvYy5maXJzdF9jb2x1bW4sbGFzdF9jb2x1bW46cj8oci5sZW5ndGg9PT1uLmxlbmd0aD90aGlzLnl5bGxvYy5maXJzdF9jb2x1bW46MCkrbltuLmxlbmd0aC1yLmxlbmd0aF0ubGVuZ3RoLXJbMF0ubGVuZ3RoOnRoaXMueXlsbG9jLmZpcnN0X2NvbHVtbi10fSx0aGlzLm9wdGlvbnMucmFuZ2VzJiYodGhpcy55eWxsb2MucmFuZ2U9W2lbMF0saVswXSt0aGlzLnl5bGVuZy10XSksdGhpcy55eWxlbmc9dGhpcy55eXRleHQubGVuZ3RoLHRoaXN9LG1vcmU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbW9yZT0hMCx0aGlzfSxyZWplY3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vcHRpb25zLmJhY2t0cmFja19sZXhlcj8odGhpcy5fYmFja3RyYWNrPSEwLHRoaXMpOnRoaXMucGFyc2VFcnJvcihcIkxleGljYWwgZXJyb3Igb24gbGluZSBcIisodGhpcy55eWxpbmVubysxKStcIi4gWW91IGNhbiBvbmx5IGludm9rZSByZWplY3QoKSBpbiB0aGUgbGV4ZXIgd2hlbiB0aGUgbGV4ZXIgaXMgb2YgdGhlIGJhY2t0cmFja2luZyBwZXJzdWFzaW9uIChvcHRpb25zLmJhY2t0cmFja19sZXhlciA9IHRydWUpLlxcblwiK3RoaXMuc2hvd1Bvc2l0aW9uKCkse3RleHQ6XCJcIix0b2tlbjpudWxsLGxpbmU6dGhpcy55eWxpbmVub30pfSxsZXNzOmZ1bmN0aW9uKGUpe3RoaXMudW5wdXQodGhpcy5tYXRjaC5zbGljZShlKSl9LHBhc3RJbnB1dDpmdW5jdGlvbigpe3ZhciBlPXRoaXMubWF0Y2hlZC5zdWJzdHIoMCx0aGlzLm1hdGNoZWQubGVuZ3RoLXRoaXMubWF0Y2gubGVuZ3RoKTtyZXR1cm4oZS5sZW5ndGg+MjA/XCIuLi5cIjpcIlwiKStlLnN1YnN0cigtMjApLnJlcGxhY2UoL1xcbi9nLFwiXCIpfSx1cGNvbWluZ0lucHV0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5tYXRjaDtyZXR1cm4gZS5sZW5ndGg8MjAmJihlKz10aGlzLl9pbnB1dC5zdWJzdHIoMCwyMC1lLmxlbmd0aCkpLChlLnN1YnN0cigwLDIwKSsoZS5sZW5ndGg+MjA/XCIuLi5cIjpcIlwiKSkucmVwbGFjZSgvXFxuL2csXCJcIil9LHNob3dQb3NpdGlvbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMucGFzdElucHV0KCksdD1BcnJheShlLmxlbmd0aCsxKS5qb2luKFwiLVwiKTtyZXR1cm4gZSt0aGlzLnVwY29taW5nSW5wdXQoKStcIlxcblwiK3QrXCJeXCJ9LHRlc3RfbWF0Y2g6ZnVuY3Rpb24oZSx0KXt2YXIgcixuLGk7aWYodGhpcy5vcHRpb25zLmJhY2t0cmFja19sZXhlciYmKGk9e3l5bGluZW5vOnRoaXMueXlsaW5lbm8seXlsbG9jOntmaXJzdF9saW5lOnRoaXMueXlsbG9jLmZpcnN0X2xpbmUsbGFzdF9saW5lOnRoaXMubGFzdF9saW5lLGZpcnN0X2NvbHVtbjp0aGlzLnl5bGxvYy5maXJzdF9jb2x1bW4sbGFzdF9jb2x1bW46dGhpcy55eWxsb2MubGFzdF9jb2x1bW59LHl5dGV4dDp0aGlzLnl5dGV4dCxtYXRjaDp0aGlzLm1hdGNoLG1hdGNoZXM6dGhpcy5tYXRjaGVzLG1hdGNoZWQ6dGhpcy5tYXRjaGVkLHl5bGVuZzp0aGlzLnl5bGVuZyxvZmZzZXQ6dGhpcy5vZmZzZXQsX21vcmU6dGhpcy5fbW9yZSxfaW5wdXQ6dGhpcy5faW5wdXQseXk6dGhpcy55eSxjb25kaXRpb25TdGFjazp0aGlzLmNvbmRpdGlvblN0YWNrLnNsaWNlKDApLGRvbmU6dGhpcy5kb25lfSx0aGlzLm9wdGlvbnMucmFuZ2VzJiYoaS55eWxsb2MucmFuZ2U9dGhpcy55eWxsb2MucmFuZ2Uuc2xpY2UoMCkpKSwobj1lWzBdLm1hdGNoKC8oPzpcXHJcXG4/fFxcbikuKi9nKSkmJih0aGlzLnl5bGluZW5vKz1uLmxlbmd0aCksdGhpcy55eWxsb2M9e2ZpcnN0X2xpbmU6dGhpcy55eWxsb2MubGFzdF9saW5lLGxhc3RfbGluZTp0aGlzLnl5bGluZW5vKzEsZmlyc3RfY29sdW1uOnRoaXMueXlsbG9jLmxhc3RfY29sdW1uLGxhc3RfY29sdW1uOm4/bltuLmxlbmd0aC0xXS5sZW5ndGgtbltuLmxlbmd0aC0xXS5tYXRjaCgvXFxyP1xcbj8vKVswXS5sZW5ndGg6dGhpcy55eWxsb2MubGFzdF9jb2x1bW4rZVswXS5sZW5ndGh9LHRoaXMueXl0ZXh0Kz1lWzBdLHRoaXMubWF0Y2grPWVbMF0sdGhpcy5tYXRjaGVzPWUsdGhpcy55eWxlbmc9dGhpcy55eXRleHQubGVuZ3RoLHRoaXMub3B0aW9ucy5yYW5nZXMmJih0aGlzLnl5bGxvYy5yYW5nZT1bdGhpcy5vZmZzZXQsdGhpcy5vZmZzZXQrPXRoaXMueXlsZW5nXSksdGhpcy5fbW9yZT0hMSx0aGlzLl9iYWNrdHJhY2s9ITEsdGhpcy5faW5wdXQ9dGhpcy5faW5wdXQuc2xpY2UoZVswXS5sZW5ndGgpLHRoaXMubWF0Y2hlZCs9ZVswXSxyPXRoaXMucGVyZm9ybUFjdGlvbi5jYWxsKHRoaXMsdGhpcy55eSx0aGlzLHQsdGhpcy5jb25kaXRpb25TdGFja1t0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aC0xXSksdGhpcy5kb25lJiZ0aGlzLl9pbnB1dCYmKHRoaXMuZG9uZT0hMSkscilyZXR1cm4gcjtpZih0aGlzLl9iYWNrdHJhY2spZm9yKHZhciBhIGluIGkpdGhpc1thXT1pW2FdO3JldHVybiExfSxuZXh0OmZ1bmN0aW9uKCl7aWYodGhpcy5kb25lKXJldHVybiB0aGlzLkVPRjt0aGlzLl9pbnB1dHx8KHRoaXMuZG9uZT0hMCksdGhpcy5fbW9yZXx8KHRoaXMueXl0ZXh0PVwiXCIsdGhpcy5tYXRjaD1cIlwiKTtmb3IodmFyIGUsdCxyLG4saT10aGlzLl9jdXJyZW50UnVsZXMoKSxhPTA7YTxpLmxlbmd0aDthKyspaWYoKHI9dGhpcy5faW5wdXQubWF0Y2godGhpcy5ydWxlc1tpW2FdXSkpJiYoIXR8fHJbMF0ubGVuZ3RoPnRbMF0ubGVuZ3RoKSl7aWYodD1yLG49YSx0aGlzLm9wdGlvbnMuYmFja3RyYWNrX2xleGVyKXtpZighMSE9PShlPXRoaXMudGVzdF9tYXRjaChyLGlbYV0pKSlyZXR1cm4gZTtpZighdGhpcy5fYmFja3RyYWNrKXJldHVybiExO3Q9ITE7Y29udGludWV9aWYoIXRoaXMub3B0aW9ucy5mbGV4KWJyZWFrfXJldHVybiB0PyExIT09KGU9dGhpcy50ZXN0X21hdGNoKHQsaVtuXSkpJiZlOlwiXCI9PT10aGlzLl9pbnB1dD90aGlzLkVPRjp0aGlzLnBhcnNlRXJyb3IoXCJMZXhpY2FsIGVycm9yIG9uIGxpbmUgXCIrKHRoaXMueXlsaW5lbm8rMSkrXCIuIFVucmVjb2duaXplZCB0ZXh0LlxcblwiK3RoaXMuc2hvd1Bvc2l0aW9uKCkse3RleHQ6XCJcIix0b2tlbjpudWxsLGxpbmU6dGhpcy55eWxpbmVub30pfSxsZXg6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm5leHQoKTtyZXR1cm4gZXx8dGhpcy5sZXgoKX0sYmVnaW46ZnVuY3Rpb24oZSl7dGhpcy5jb25kaXRpb25TdGFjay5wdXNoKGUpfSxwb3BTdGF0ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aC0xPjA/dGhpcy5jb25kaXRpb25TdGFjay5wb3AoKTp0aGlzLmNvbmRpdGlvblN0YWNrWzBdfSxfY3VycmVudFJ1bGVzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoJiZ0aGlzLmNvbmRpdGlvblN0YWNrW3RoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoLTFdP3RoaXMuY29uZGl0aW9uc1t0aGlzLmNvbmRpdGlvblN0YWNrW3RoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoLTFdXS5ydWxlczp0aGlzLmNvbmRpdGlvbnMuSU5JVElBTC5ydWxlc30sdG9wU3RhdGU6ZnVuY3Rpb24oZSl7cmV0dXJuKGU9dGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGgtMS1NYXRoLmFicyhlfHwwKSk+PTA/dGhpcy5jb25kaXRpb25TdGFja1tlXTpcIklOSVRJQUxcIn0scHVzaFN0YXRlOmZ1bmN0aW9uKGUpe3RoaXMuYmVnaW4oZSl9LHN0YXRlU3RhY2tTaXplOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RofSxvcHRpb25zOnt9LHBlcmZvcm1BY3Rpb246ZnVuY3Rpb24oZSx0LHIsbil7c3dpdGNoKHIpe2Nhc2UgMDpyZXR1cm4gNDtjYXNlIDE6cmV0dXJuIDE0O2Nhc2UgMjpyZXR1cm4gMTI7Y2FzZSAzOnJldHVybiAxNTtjYXNlIDQ6cmV0dXJuIDE2O2Nhc2UgNTpyZXR1cm4gMjI7Y2FzZSA2OnJldHVybiAyNDtjYXNlIDc6cmV0dXJuIDI4O2Nhc2UgODpyZXR1cm4gMzA7Y2FzZSA5OnJldHVybiAxODtjYXNlIDEwOnJldHVybiB0Lnl5dGV4dD10Lnl5dGV4dC5zdWJzdHIoMSx0Lnl5bGVuZy0yKSwzMjtjYXNlIDExOnJldHVybiB0Lnl5dGV4dD10Lnl5dGV4dC5zdWJzdHIoMSx0Lnl5bGVuZy0yKSwzMztjYXNlIDEyOnJldHVybiAxNztjYXNlIDEzOnJldHVybiAzMX19LHJ1bGVzOlsvXig/OlxcJCkvLC9eKD86XFwuXFwuKS8sL14oPzpcXC4pLywvXig/OlxcKikvLC9eKD86W2EtekEtWl9dK1thLXpBLVowLTlfXSopLywvXig/OlxcWykvLC9eKD86XFxdKS8sL14oPzosKS8sL14oPzooKC0/KD86MHxbMS05XVswLTldKikpKT9cXDooKC0/KD86MHxbMS05XVswLTldKikpKT8oXFw6KCgtPyg/OjB8WzEtOV1bMC05XSopKSk/KT8pLywvXig/OigtPyg/OjB8WzEtOV1bMC05XSopKSkvLC9eKD86XCIoPzpcXFxcW1wiYmZucnQvXFxcXF18XFxcXHVbYS1mQS1GMC05XXs0fXxbXlwiXFxcXF0pKlwiKS8sL14oPzonKD86XFxcXFsnYmZucnQvXFxcXF18XFxcXHVbYS1mQS1GMC05XXs0fXxbXidcXFxcXSkqJykvLC9eKD86XFwoLis/XFwpKD89XFxdKSkvLC9eKD86XFw/XFwoLis/XFwpKD89XFxdKSkvXSxjb25kaXRpb25zOntJTklUSUFMOntydWxlczpbMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxM10saW5jbHVzaXZlOiEwfX19fSgpLHIucHJvdG90eXBlPWUsZS5QYXJzZXI9cixuZXcgcn0oKTt2b2lkIDAhPT1lJiZ2b2lkIDAhPT1yJiYoci5wYXJzZXI9aSxyLlBhcnNlcj1pLlBhcnNlcixyLnBhcnNlPWZ1bmN0aW9uKCl7cmV0dXJuIGkucGFyc2UuYXBwbHkoaSxhcmd1bWVudHMpfSxyLm1haW49ZnVuY3Rpb24odCl7dFsxXXx8KGNvbnNvbGUubG9nKFwiVXNhZ2U6IFwiK3RbMF0rXCIgRklMRVwiKSxuLmV4aXQoMSkpO3ZhciBpPWUoXCJmc1wiKS5yZWFkRmlsZVN5bmMoZShcInBhdGhcIikubm9ybWFsaXplKHRbMV0pLFwidXRmOFwiKTtyZXR1cm4gci5wYXJzZXIucGFyc2UoaSl9LHZvaWQgMCE9PXQmJmUubWFpbj09PXQmJnIubWFpbihuLmFyZ3Yuc2xpY2UoMSkpKX0pLmNhbGwodGhpcyxlKFwiX3Byb2Nlc3NcIikpfSx7X3Byb2Nlc3M6MTQsZnM6MTIscGF0aDoxM31dLDI6W2Z1bmN0aW9uKGUsdCxyKXt0LmV4cG9ydHM9e2lkZW50aWZpZXI6XCJbYS16QS1aX10rW2EtekEtWjAtOV9dKlwiLGludGVnZXI6XCItPyg/OjB8WzEtOV1bMC05XSopXCIscXFfc3RyaW5nOidcIig/OlxcXFxcXFxcW1wiYmZucnQvXFxcXFxcXFxdfFxcXFxcXFxcdVthLWZBLUYwLTldezR9fFteXCJcXFxcXFxcXF0pKlwiJyxxX3N0cmluZzpcIicoPzpcXFxcXFxcXFsnYmZucnQvXFxcXFxcXFxdfFxcXFxcXFxcdVthLWZBLUYwLTldezR9fFteJ1xcXFxcXFxcXSkqJ1wifX0se31dLDM6W2Z1bmN0aW9uKGUsdCxyKXt2YXIgbj1lKFwiLi9kaWN0XCIpLGk9ZShcImZzXCIpLGE9e2xleDp7bWFjcm9zOntlc2M6XCJcXFxcXFxcXFwiLGludDpuLmludGVnZXJ9LHJ1bGVzOltbXCJcXFxcJFwiLFwicmV0dXJuICdET0xMQVInXCJdLFtcIlxcXFwuXFxcXC5cIixcInJldHVybiAnRE9UX0RPVCdcIl0sW1wiXFxcXC5cIixcInJldHVybiAnRE9UJ1wiXSxbXCJcXFxcKlwiLFwicmV0dXJuICdTVEFSJ1wiXSxbbi5pZGVudGlmaWVyLFwicmV0dXJuICdJREVOVElGSUVSJ1wiXSxbXCJcXFxcW1wiLFwicmV0dXJuICdbJ1wiXSxbXCJcXFxcXVwiLFwicmV0dXJuICddJ1wiXSxbXCIsXCIsXCJyZXR1cm4gJywnXCJdLFtcIih7aW50fSk/XFxcXDooe2ludH0pPyhcXFxcOih7aW50fSk/KT9cIixcInJldHVybiAnQVJSQVlfU0xJQ0UnXCJdLFtcIntpbnR9XCIsXCJyZXR1cm4gJ0lOVEVHRVInXCJdLFtuLnFxX3N0cmluZyxcInl5dGV4dCA9IHl5dGV4dC5zdWJzdHIoMSx5eWxlbmctMik7IHJldHVybiAnUVFfU1RSSU5HJztcIl0sW24ucV9zdHJpbmcsXCJ5eXRleHQgPSB5eXRleHQuc3Vic3RyKDEseXlsZW5nLTIpOyByZXR1cm4gJ1FfU1RSSU5HJztcIl0sW1wiXFxcXCguKz9cXFxcKSg/PVxcXFxdKVwiLFwicmV0dXJuICdTQ1JJUFRfRVhQUkVTU0lPTidcIl0sW1wiXFxcXD9cXFxcKC4rP1xcXFwpKD89XFxcXF0pXCIsXCJyZXR1cm4gJ0ZJTFRFUl9FWFBSRVNTSU9OJ1wiXV19LHN0YXJ0OlwiSlNPTl9QQVRIXCIsYm5mOntKU09OX1BBVEg6W1tcIkRPTExBUlwiLCd5eS5hc3Quc2V0KHsgZXhwcmVzc2lvbjogeyB0eXBlOiBcInJvb3RcIiwgdmFsdWU6ICQxIH0gfSk7IHl5LmFzdC51bnNoaWZ0KCk7IHJldHVybiB5eS5hc3QueWllbGQoKSddLFtcIkRPTExBUiBQQVRIX0NPTVBPTkVOVFNcIiwneXkuYXN0LnNldCh7IGV4cHJlc3Npb246IHsgdHlwZTogXCJyb290XCIsIHZhbHVlOiAkMSB9IH0pOyB5eS5hc3QudW5zaGlmdCgpOyByZXR1cm4geXkuYXN0LnlpZWxkKCknXSxbXCJMRUFESU5HX0NISUxEX01FTUJFUl9FWFBSRVNTSU9OXCIsXCJ5eS5hc3QudW5zaGlmdCgpOyByZXR1cm4geXkuYXN0LnlpZWxkKClcIl0sW1wiTEVBRElOR19DSElMRF9NRU1CRVJfRVhQUkVTU0lPTiBQQVRIX0NPTVBPTkVOVFNcIiwneXkuYXN0LnNldCh7IG9wZXJhdGlvbjogXCJtZW1iZXJcIiwgc2NvcGU6IFwiY2hpbGRcIiwgZXhwcmVzc2lvbjogeyB0eXBlOiBcImlkZW50aWZpZXJcIiwgdmFsdWU6ICQxIH19KTsgeXkuYXN0LnVuc2hpZnQoKTsgcmV0dXJuIHl5LmFzdC55aWVsZCgpJ11dLFBBVEhfQ09NUE9ORU5UUzpbW1wiUEFUSF9DT01QT05FTlRcIixcIlwiXSxbXCJQQVRIX0NPTVBPTkVOVFMgUEFUSF9DT01QT05FTlRcIixcIlwiXV0sUEFUSF9DT01QT05FTlQ6W1tcIk1FTUJFUl9DT01QT05FTlRcIiwneXkuYXN0LnNldCh7IG9wZXJhdGlvbjogXCJtZW1iZXJcIiB9KTsgeXkuYXN0LnB1c2goKSddLFtcIlNVQlNDUklQVF9DT01QT05FTlRcIiwneXkuYXN0LnNldCh7IG9wZXJhdGlvbjogXCJzdWJzY3JpcHRcIiB9KTsgeXkuYXN0LnB1c2goKSAnXV0sTUVNQkVSX0NPTVBPTkVOVDpbW1wiQ0hJTERfTUVNQkVSX0NPTVBPTkVOVFwiLCd5eS5hc3Quc2V0KHsgc2NvcGU6IFwiY2hpbGRcIiB9KSddLFtcIkRFU0NFTkRBTlRfTUVNQkVSX0NPTVBPTkVOVFwiLCd5eS5hc3Quc2V0KHsgc2NvcGU6IFwiZGVzY2VuZGFudFwiIH0pJ11dLENISUxEX01FTUJFUl9DT01QT05FTlQ6W1tcIkRPVCBNRU1CRVJfRVhQUkVTU0lPTlwiLFwiXCJdXSxMRUFESU5HX0NISUxEX01FTUJFUl9FWFBSRVNTSU9OOltbXCJNRU1CRVJfRVhQUkVTU0lPTlwiLCd5eS5hc3Quc2V0KHsgc2NvcGU6IFwiY2hpbGRcIiwgb3BlcmF0aW9uOiBcIm1lbWJlclwiIH0pJ11dLERFU0NFTkRBTlRfTUVNQkVSX0NPTVBPTkVOVDpbW1wiRE9UX0RPVCBNRU1CRVJfRVhQUkVTU0lPTlwiLFwiXCJdXSxNRU1CRVJfRVhQUkVTU0lPTjpbW1wiU1RBUlwiLCd5eS5hc3Quc2V0KHsgZXhwcmVzc2lvbjogeyB0eXBlOiBcIndpbGRjYXJkXCIsIHZhbHVlOiAkMSB9IH0pJ10sW1wiSURFTlRJRklFUlwiLCd5eS5hc3Quc2V0KHsgZXhwcmVzc2lvbjogeyB0eXBlOiBcImlkZW50aWZpZXJcIiwgdmFsdWU6ICQxIH0gfSknXSxbXCJTQ1JJUFRfRVhQUkVTU0lPTlwiLCd5eS5hc3Quc2V0KHsgZXhwcmVzc2lvbjogeyB0eXBlOiBcInNjcmlwdF9leHByZXNzaW9uXCIsIHZhbHVlOiAkMSB9IH0pJ10sW1wiSU5URUdFUlwiLCd5eS5hc3Quc2V0KHsgZXhwcmVzc2lvbjogeyB0eXBlOiBcIm51bWVyaWNfbGl0ZXJhbFwiLCB2YWx1ZTogcGFyc2VJbnQoJDEpIH0gfSknXSxbXCJFTkRcIixcIlwiXV0sU1VCU0NSSVBUX0NPTVBPTkVOVDpbW1wiQ0hJTERfU1VCU0NSSVBUX0NPTVBPTkVOVFwiLCd5eS5hc3Quc2V0KHsgc2NvcGU6IFwiY2hpbGRcIiB9KSddLFtcIkRFU0NFTkRBTlRfU1VCU0NSSVBUX0NPTVBPTkVOVFwiLCd5eS5hc3Quc2V0KHsgc2NvcGU6IFwiZGVzY2VuZGFudFwiIH0pJ11dLENISUxEX1NVQlNDUklQVF9DT01QT05FTlQ6W1tcIlsgU1VCU0NSSVBUIF1cIixcIlwiXV0sREVTQ0VOREFOVF9TVUJTQ1JJUFRfQ09NUE9ORU5UOltbXCJET1RfRE9UIFsgU1VCU0NSSVBUIF1cIixcIlwiXV0sU1VCU0NSSVBUOltbXCJTVUJTQ1JJUFRfRVhQUkVTU0lPTlwiLFwiXCJdLFtcIlNVQlNDUklQVF9FWFBSRVNTSU9OX0xJU1RcIiwnJDEubGVuZ3RoID4gMT8geXkuYXN0LnNldCh7IGV4cHJlc3Npb246IHsgdHlwZTogXCJ1bmlvblwiLCB2YWx1ZTogJDEgfSB9KSA6ICQkID0gJDEnXV0sU1VCU0NSSVBUX0VYUFJFU1NJT05fTElTVDpbW1wiU1VCU0NSSVBUX0VYUFJFU1NJT05fTElTVEFCTEVcIixcIiQkID0gWyQxXVwiXSxbXCJTVUJTQ1JJUFRfRVhQUkVTU0lPTl9MSVNUICwgU1VCU0NSSVBUX0VYUFJFU1NJT05fTElTVEFCTEVcIixcIiQkID0gJDEuY29uY2F0KCQzKVwiXV0sU1VCU0NSSVBUX0VYUFJFU1NJT05fTElTVEFCTEU6W1tcIklOVEVHRVJcIiwnJCQgPSB7IGV4cHJlc3Npb246IHsgdHlwZTogXCJudW1lcmljX2xpdGVyYWxcIiwgdmFsdWU6IHBhcnNlSW50KCQxKSB9IH07IHl5LmFzdC5zZXQoJCQpJ10sW1wiU1RSSU5HX0xJVEVSQUxcIiwnJCQgPSB7IGV4cHJlc3Npb246IHsgdHlwZTogXCJzdHJpbmdfbGl0ZXJhbFwiLCB2YWx1ZTogJDEgfSB9OyB5eS5hc3Quc2V0KCQkKSddLFtcIkFSUkFZX1NMSUNFXCIsJyQkID0geyBleHByZXNzaW9uOiB7IHR5cGU6IFwic2xpY2VcIiwgdmFsdWU6ICQxIH0gfTsgeXkuYXN0LnNldCgkJCknXV0sU1VCU0NSSVBUX0VYUFJFU1NJT046W1tcIlNUQVJcIiwnJCQgPSB7IGV4cHJlc3Npb246IHsgdHlwZTogXCJ3aWxkY2FyZFwiLCB2YWx1ZTogJDEgfSB9OyB5eS5hc3Quc2V0KCQkKSddLFtcIlNDUklQVF9FWFBSRVNTSU9OXCIsJyQkID0geyBleHByZXNzaW9uOiB7IHR5cGU6IFwic2NyaXB0X2V4cHJlc3Npb25cIiwgdmFsdWU6ICQxIH0gfTsgeXkuYXN0LnNldCgkJCknXSxbXCJGSUxURVJfRVhQUkVTU0lPTlwiLCckJCA9IHsgZXhwcmVzc2lvbjogeyB0eXBlOiBcImZpbHRlcl9leHByZXNzaW9uXCIsIHZhbHVlOiAkMSB9IH07IHl5LmFzdC5zZXQoJCQpJ11dLFNUUklOR19MSVRFUkFMOltbXCJRUV9TVFJJTkdcIixcIiQkID0gJDFcIl0sW1wiUV9TVFJJTkdcIixcIiQkID0gJDFcIl1dfX07aS5yZWFkRmlsZVN5bmMmJihhLm1vZHVsZUluY2x1ZGU9aS5yZWFkRmlsZVN5bmMoZS5yZXNvbHZlKFwiLi4vaW5jbHVkZS9tb2R1bGUuanNcIikpLGEuYWN0aW9uSW5jbHVkZT1pLnJlYWRGaWxlU3luYyhlLnJlc29sdmUoXCIuLi9pbmNsdWRlL2FjdGlvbi5qc1wiKSkpLHQuZXhwb3J0cz1hfSx7XCIuL2RpY3RcIjoyLGZzOjEyfV0sNDpbZnVuY3Rpb24oZSx0LHIpe3ZhciBuPWUoXCIuL2Flc3ByaW1cIiksaT1lKFwiLi9zbGljZVwiKSxhPWUoXCJzdGF0aWMtZXZhbFwiKSxvPWUoXCJ1bmRlcnNjb3JlXCIpLnVuaXEscz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmluaXRpYWxpemUuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtmdW5jdGlvbiBsKHQscixpKXt2YXIgYT1lKFwiLi9pbmRleFwiKSxvPWYobi5wYXJzZShyKS5ib2R5WzBdLmV4cHJlc3Npb24se1wiQFwiOnQudmFsdWV9KSxzPWkucmVwbGFjZSgvXFx7XFx7XFxzKnZhbHVlXFxzKlxcfVxcfS9nLG8pLGw9YS5ub2Rlcyh0LnZhbHVlLHMpO3JldHVybiBsLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5wYXRoPXQucGF0aC5jb25jYXQoZS5wYXRoLnNsaWNlKDEpKX0pLGx9ZnVuY3Rpb24gdShlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKX1mdW5jdGlvbiBjKGUpe3JldHVybiBlJiYhKGUgaW5zdGFuY2VvZiBBcnJheSkmJmUgaW5zdGFuY2VvZiBPYmplY3R9ZnVuY3Rpb24gcChlKXtyZXR1cm4gZnVuY3Rpb24odCxyLG4saSl7dmFyIGE9dC52YWx1ZSxvPXQucGF0aCxzPVtdLGw9KGZ1bmN0aW9uKHQsYSl7dSh0KT8odC5mb3JFYWNoKGZ1bmN0aW9uKGUsdCl7IShzLmxlbmd0aD49aSkmJm4odCxlLHIpJiZzLnB1c2goe3BhdGg6YS5jb25jYXQodCksdmFsdWU6ZX0pfSksdC5mb3JFYWNoKGZ1bmN0aW9uKHQscil7IShzLmxlbmd0aD49aSkmJmUmJmwodCxhLmNvbmNhdChyKSl9KSk6Yyh0KSYmKHRoaXMua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpeyEocy5sZW5ndGg+PWkpJiZuKGUsdFtlXSxyKSYmcy5wdXNoKHtwYXRoOmEuY29uY2F0KGUpLHZhbHVlOnRbZV19KX0pLHRoaXMua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKHIpeyEocy5sZW5ndGg+PWkpJiZlJiZsKHRbcl0sYS5jb25jYXQocikpfSkpfSkuYmluZCh0aGlzKTtyZXR1cm4gbChhLG8pLHN9fWZ1bmN0aW9uIGQoZSl7cmV0dXJuIGZ1bmN0aW9uKHQscixuKXtyZXR1cm4gdGhpcy5kZXNjZW5kKHIsdC5leHByZXNzaW9uLnZhbHVlLGUsbil9fWZ1bmN0aW9uIGgoZSl7cmV0dXJuIGZ1bmN0aW9uKHQscixuKXtyZXR1cm4gdGhpcy50cmF2ZXJzZShyLHQuZXhwcmVzc2lvbi52YWx1ZSxlLG4pfX1mdW5jdGlvbiBmKCl7dHJ5e3JldHVybiBhLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1jYXRjaChlKXt9fWZ1bmN0aW9uIG0oZSl7cmV0dXJuIG8oZT1lLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZX0pLGZ1bmN0aW9uKGUpe3JldHVybiBlLnBhdGgubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBTdHJpbmcoZSkucmVwbGFjZShcIi1cIixcIi0tXCIpfSkuam9pbihcIi1cIil9KX1mdW5jdGlvbiBnKGUpe3ZhciB0PVN0cmluZyhlKTtyZXR1cm4gdC5tYXRjaCgvXi0/WzAtOV0rJC8pP3BhcnNlSW50KHQpOm51bGx9cy5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbigpe3RoaXMudHJhdmVyc2U9cCghMCksdGhpcy5kZXNjZW5kPXAoKX0scy5wcm90b3R5cGUua2V5cz1PYmplY3Qua2V5cyxzLnByb3RvdHlwZS5yZXNvbHZlPWZ1bmN0aW9uKGUpe3ZhciB0PVtlLm9wZXJhdGlvbixlLnNjb3BlLGUuZXhwcmVzc2lvbi50eXBlXS5qb2luKFwiLVwiKSxyPXRoaXMuX2Zuc1t0XTtpZighcil0aHJvdyBFcnJvcihcImNvdWxkbid0IHJlc29sdmUga2V5OiBcIit0KTtyZXR1cm4gci5iaW5kKHRoaXMpfSxzLnByb3RvdHlwZS5yZWdpc3Rlcj1mdW5jdGlvbihlLHQpe2lmKCF0IGluc3RhbmNlb2YgRnVuY3Rpb24pdGhyb3cgRXJyb3IoXCJoYW5kbGVyIG11c3QgYmUgYSBmdW5jdGlvblwiKTt0aGlzLl9mbnNbZV09dH0scy5wcm90b3R5cGUuX2Zucz17XCJtZW1iZXItY2hpbGQtaWRlbnRpZmllclwiOmZ1bmN0aW9uKGUsdCl7dmFyIHI9ZS5leHByZXNzaW9uLnZhbHVlLG49dC52YWx1ZTtpZihuIGluc3RhbmNlb2YgT2JqZWN0JiZyIGluIG4pcmV0dXJuW3t2YWx1ZTpuW3JdLHBhdGg6dC5wYXRoLmNvbmNhdChyKX1dfSxcIm1lbWJlci1kZXNjZW5kYW50LWlkZW50aWZpZXJcIjpoKGZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gZT09cn0pLFwic3Vic2NyaXB0LWNoaWxkLW51bWVyaWNfbGl0ZXJhbFwiOmQoZnVuY3Rpb24oZSx0LHIpe3JldHVybiBlPT09cn0pLFwibWVtYmVyLWNoaWxkLW51bWVyaWNfbGl0ZXJhbFwiOmQoZnVuY3Rpb24oZSx0LHIpe3JldHVybiBTdHJpbmcoZSk9PT1TdHJpbmcocil9KSxcInN1YnNjcmlwdC1kZXNjZW5kYW50LW51bWVyaWNfbGl0ZXJhbFwiOmgoZnVuY3Rpb24oZSx0LHIpe3JldHVybiBlPT09cn0pLFwibWVtYmVyLWNoaWxkLXdpbGRjYXJkXCI6ZChmdW5jdGlvbigpe3JldHVybiEwfSksXCJtZW1iZXItZGVzY2VuZGFudC13aWxkY2FyZFwiOmgoZnVuY3Rpb24oKXtyZXR1cm4hMH0pLFwic3Vic2NyaXB0LWRlc2NlbmRhbnQtd2lsZGNhcmRcIjpoKGZ1bmN0aW9uKCl7cmV0dXJuITB9KSxcInN1YnNjcmlwdC1jaGlsZC13aWxkY2FyZFwiOmQoZnVuY3Rpb24oKXtyZXR1cm4hMH0pLFwic3Vic2NyaXB0LWNoaWxkLXNsaWNlXCI6ZnVuY3Rpb24oZSx0KXtpZih1KHQudmFsdWUpKXt2YXIgcj1lLmV4cHJlc3Npb24udmFsdWUuc3BsaXQoXCI6XCIpLm1hcChnKSxuPXQudmFsdWUubWFwKGZ1bmN0aW9uKGUscil7cmV0dXJue3ZhbHVlOmUscGF0aDp0LnBhdGguY29uY2F0KHIpfX0pO3JldHVybiBpLmFwcGx5KG51bGwsW25dLmNvbmNhdChyKSl9fSxcInN1YnNjcmlwdC1jaGlsZC11bmlvblwiOmZ1bmN0aW9uKGUsdCl7dmFyIHI9W107cmV0dXJuIGUuZXhwcmVzc2lvbi52YWx1ZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciBuPXtvcGVyYXRpb246XCJzdWJzY3JpcHRcIixzY29wZTpcImNoaWxkXCIsZXhwcmVzc2lvbjplLmV4cHJlc3Npb259LGk9dGhpcy5yZXNvbHZlKG4pKG4sdCk7aSYmKHI9ci5jb25jYXQoaSkpfSx0aGlzKSxtKHIpfSxcInN1YnNjcmlwdC1kZXNjZW5kYW50LXVuaW9uXCI6ZnVuY3Rpb24odCxyLG4pe3ZhciBpPWUoXCIuLlwiKSxhPXRoaXMsbz1bXTtyZXR1cm4gaS5ub2RlcyhyLFwiJC4uKlwiKS5zbGljZSgxKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe28ubGVuZ3RoPj1ufHx0LmV4cHJlc3Npb24udmFsdWUuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcj17b3BlcmF0aW9uOlwic3Vic2NyaXB0XCIsc2NvcGU6XCJjaGlsZFwiLGV4cHJlc3Npb246dC5leHByZXNzaW9ufSxuPWEucmVzb2x2ZShyKShyLGUpO289by5jb25jYXQobil9KX0pLG0obyl9LFwic3Vic2NyaXB0LWNoaWxkLWZpbHRlcl9leHByZXNzaW9uXCI6ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPWUuZXhwcmVzc2lvbi52YWx1ZS5zbGljZSgyLC0xKSxhPW4ucGFyc2UoaSkuYm9keVswXS5leHByZXNzaW9uLG89ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZihhLHtcIkBcIjp0fSl9O3JldHVybiB0aGlzLmRlc2NlbmQodCxudWxsLG8scil9LFwic3Vic2NyaXB0LWRlc2NlbmRhbnQtZmlsdGVyX2V4cHJlc3Npb25cIjpmdW5jdGlvbihlLHQscil7dmFyIGk9ZS5leHByZXNzaW9uLnZhbHVlLnNsaWNlKDIsLTEpLGE9bi5wYXJzZShpKS5ib2R5WzBdLmV4cHJlc3Npb24sbz1mdW5jdGlvbihlLHQpe3JldHVybiBmKGEse1wiQFwiOnR9KX07cmV0dXJuIHRoaXMudHJhdmVyc2UodCxudWxsLG8scil9LFwic3Vic2NyaXB0LWNoaWxkLXNjcmlwdF9leHByZXNzaW9uXCI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbCh0LGUuZXhwcmVzc2lvbi52YWx1ZS5zbGljZSgxLC0xKSxcIiRbe3t2YWx1ZX19XVwiKX0sXCJtZW1iZXItY2hpbGQtc2NyaXB0X2V4cHJlc3Npb25cIjpmdW5jdGlvbihlLHQpe3JldHVybiBsKHQsZS5leHByZXNzaW9uLnZhbHVlLnNsaWNlKDEsLTEpLFwiJC57e3ZhbHVlfX1cIil9LFwibWVtYmVyLWRlc2NlbmRhbnQtc2NyaXB0X2V4cHJlc3Npb25cIjpmdW5jdGlvbihlLHQpe3JldHVybiBsKHQsZS5leHByZXNzaW9uLnZhbHVlLnNsaWNlKDEsLTEpLFwiJC4udmFsdWVcIil9fSxzLnByb3RvdHlwZS5fZm5zW1wic3Vic2NyaXB0LWNoaWxkLXN0cmluZ19saXRlcmFsXCJdPXMucHJvdG90eXBlLl9mbnNbXCJtZW1iZXItY2hpbGQtaWRlbnRpZmllclwiXSxzLnByb3RvdHlwZS5fZm5zW1wibWVtYmVyLWRlc2NlbmRhbnQtbnVtZXJpY19saXRlcmFsXCJdPXMucHJvdG90eXBlLl9mbnNbXCJzdWJzY3JpcHQtZGVzY2VuZGFudC1zdHJpbmdfbGl0ZXJhbFwiXT1zLnByb3RvdHlwZS5fZm5zW1wibWVtYmVyLWRlc2NlbmRhbnQtaWRlbnRpZmllclwiXSx0LmV4cG9ydHM9c30se1wiLi5cIjpcImpzb25wYXRoXCIsXCIuL2Flc3ByaW1cIjpcIi4vYWVzcHJpbVwiLFwiLi9pbmRleFwiOjUsXCIuL3NsaWNlXCI6NyxcInN0YXRpYy1ldmFsXCI6MTUsdW5kZXJzY29yZToxMn1dLDU6W2Z1bmN0aW9uKGUsdCxyKXt2YXIgbj1lKFwiYXNzZXJ0XCIpLGk9ZShcIi4vZGljdFwiKSxhPWUoXCIuL3BhcnNlclwiKSxvPWUoXCIuL2hhbmRsZXJzXCIpLHM9ZnVuY3Rpb24oKXt0aGlzLmluaXRpYWxpemUuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtmdW5jdGlvbiBsKGUpe3JldHVyblwiW29iamVjdCBTdHJpbmddXCI9PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKX1zLnByb3RvdHlwZS5pbml0aWFsaXplPWZ1bmN0aW9uKCl7dGhpcy5wYXJzZXI9bmV3IGEsdGhpcy5oYW5kbGVycz1uZXcgb30scy5wcm90b3R5cGUucGFyc2U9ZnVuY3Rpb24oZSl7cmV0dXJuIG4ub2sobChlKSxcIndlIG5lZWQgYSBwYXRoXCIpLHRoaXMucGFyc2VyLnBhcnNlKGUpfSxzLnByb3RvdHlwZS5wYXJlbnQ9ZnVuY3Rpb24oZSx0KXtuLm9rKGUgaW5zdGFuY2VvZiBPYmplY3QsXCJvYmogbmVlZHMgdG8gYmUgYW4gb2JqZWN0XCIpLG4ub2sodCxcIndlIG5lZWQgYSBwYXRoXCIpO3ZhciByPXRoaXMubm9kZXMoZSx0KVswXTtyZXR1cm4gci5wYXRoLnBvcCgpLHRoaXMudmFsdWUoZSxyLnBhdGgpfSxzLnByb3RvdHlwZS5hcHBseT1mdW5jdGlvbihlLHQscil7bi5vayhlIGluc3RhbmNlb2YgT2JqZWN0LFwib2JqIG5lZWRzIHRvIGJlIGFuIG9iamVjdFwiKSxuLm9rKHQsXCJ3ZSBuZWVkIGEgcGF0aFwiKSxuLmVxdWFsKHR5cGVvZiByLFwiZnVuY3Rpb25cIixcImZuIG5lZWRzIHRvIGJlIGZ1bmN0aW9uXCIpO3ZhciBpPXRoaXMubm9kZXMoZSx0KS5zb3J0KGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQucGF0aC5sZW5ndGgtZS5wYXRoLmxlbmd0aH0pO3JldHVybiBpLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIG49dC5wYXRoLnBvcCgpLGk9dGhpcy52YWx1ZShlLHRoaXMuc3RyaW5naWZ5KHQucGF0aCkpLGE9dC52YWx1ZT1yLmNhbGwoZSxpW25dKTtpW25dPWF9LHRoaXMpLGl9LHMucHJvdG90eXBlLnZhbHVlPWZ1bmN0aW9uKGUsdCxyKXtpZihuLm9rKGUgaW5zdGFuY2VvZiBPYmplY3QsXCJvYmogbmVlZHMgdG8gYmUgYW4gb2JqZWN0XCIpLG4ub2sodCxcIndlIG5lZWQgYSBwYXRoXCIpLGFyZ3VtZW50cy5sZW5ndGg+PTMpe3ZhciBpPXRoaXMubm9kZXMoZSx0KS5zaGlmdCgpO2lmKCFpKXJldHVybiB0aGlzLl92aXZpZnkoZSx0LHIpO3ZhciBhPWkucGF0aC5zbGljZSgtMSkuc2hpZnQoKTt0aGlzLnBhcmVudChlLHRoaXMuc3RyaW5naWZ5KGkucGF0aCkpW2FdPXJ9cmV0dXJuIHRoaXMucXVlcnkoZSx0aGlzLnN0cmluZ2lmeSh0KSwxKS5zaGlmdCgpfSxzLnByb3RvdHlwZS5fdml2aWZ5PWZ1bmN0aW9uKGUsdCxyKXt2YXIgaT10aGlzO24ub2soZSBpbnN0YW5jZW9mIE9iamVjdCxcIm9iaiBuZWVkcyB0byBiZSBhbiBvYmplY3RcIiksbi5vayh0LFwid2UgbmVlZCBhIHBhdGhcIik7dmFyIGE9dGhpcy5wYXJzZXIucGFyc2UodCkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLmV4cHJlc3Npb24udmFsdWV9KSxvPWZ1bmN0aW9uKHQscil7dmFyIG49dC5wb3AoKSxhPWkudmFsdWUoZSx0KTthfHwobyh0LmNvbmNhdCgpLFwic3RyaW5nXCI9PXR5cGVvZiBuP3t9OltdKSxhPWkudmFsdWUoZSx0KSksYVtuXT1yfTtyZXR1cm4gbyhhLHIpLHRoaXMucXVlcnkoZSx0KVswXX0scy5wcm90b3R5cGUucXVlcnk9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBuLm9rKGUgaW5zdGFuY2VvZiBPYmplY3QsXCJvYmogbmVlZHMgdG8gYmUgYW4gb2JqZWN0XCIpLG4ub2sobCh0KSxcIndlIG5lZWQgYSBwYXRoXCIpLHRoaXMubm9kZXMoZSx0LHIpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS52YWx1ZX0pfSxzLnByb3RvdHlwZS5wYXRocz1mdW5jdGlvbihlLHQscil7cmV0dXJuIG4ub2soZSBpbnN0YW5jZW9mIE9iamVjdCxcIm9iaiBuZWVkcyB0byBiZSBhbiBvYmplY3RcIiksbi5vayh0LFwid2UgbmVlZCBhIHBhdGhcIiksdGhpcy5ub2RlcyhlLHQscikubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnBhdGh9KX0scy5wcm90b3R5cGUubm9kZXM9ZnVuY3Rpb24oZSx0LHIpe2lmKG4ub2soZSBpbnN0YW5jZW9mIE9iamVjdCxcIm9iaiBuZWVkcyB0byBiZSBhbiBvYmplY3RcIiksbi5vayh0LFwid2UgbmVlZCBhIHBhdGhcIiksMD09PXIpcmV0dXJuW107dmFyIGk9dGhpcy5wYXJzZXIucGFyc2UodCksYT10aGlzLmhhbmRsZXJzLG89W3twYXRoOltcIiRcIl0sdmFsdWU6ZX1dLHM9W107cmV0dXJuKGkubGVuZ3RoJiZcInJvb3RcIj09aVswXS5leHByZXNzaW9uLnR5cGUmJmkuc2hpZnQoKSxpLmxlbmd0aCk/KGkuZm9yRWFjaChmdW5jdGlvbihlLHQpe2lmKCEocy5sZW5ndGg+PXIpKXt2YXIgbj1hLnJlc29sdmUoZSksbD1bXTtvLmZvckVhY2goZnVuY3Rpb24oYSl7aWYoIShzLmxlbmd0aD49cikpe3ZhciBvPW4oZSxhLHIpO3Q9PWkubGVuZ3RoLTE/cz1zLmNvbmNhdChvfHxbXSk6bD1sLmNvbmNhdChvfHxbXSl9fSksbz1sfX0pLHI/cy5zbGljZSgwLHIpOnMpOm99LHMucHJvdG90eXBlLnN0cmluZ2lmeT1mdW5jdGlvbihlKXtuLm9rKGUsXCJ3ZSBuZWVkIGEgcGF0aFwiKTt2YXIgdD1cIiRcIixyPXtcImRlc2NlbmRhbnQtbWVtYmVyXCI6XCIuLnt7dmFsdWV9fVwiLFwiY2hpbGQtbWVtYmVyXCI6XCIue3t2YWx1ZX19XCIsXCJkZXNjZW5kYW50LXN1YnNjcmlwdFwiOlwiLi5be3t2YWx1ZX19XVwiLFwiY2hpbGQtc3Vic2NyaXB0XCI6XCJbe3t2YWx1ZX19XVwifTtyZXR1cm4oZT10aGlzLl9ub3JtYWxpemUoZSkpLmZvckVhY2goZnVuY3Rpb24oZSl7aWYoXCJyb290XCIhPWUuZXhwcmVzc2lvbi50eXBlKXt2YXIgbixpPVtlLnNjb3BlLGUub3BlcmF0aW9uXS5qb2luKFwiLVwiKSxhPXJbaV07aWYobj1cInN0cmluZ19saXRlcmFsXCI9PWUuZXhwcmVzc2lvbi50eXBlP0pTT04uc3RyaW5naWZ5KGUuZXhwcmVzc2lvbi52YWx1ZSk6ZS5leHByZXNzaW9uLnZhbHVlLCFhKXRocm93IEVycm9yKFwiY291bGRuJ3QgZmluZCB0ZW1wbGF0ZSBcIitpKTt0Kz1hLnJlcGxhY2UoL3t7dmFsdWV9fS8sbil9fSksdH0scy5wcm90b3R5cGUuX25vcm1hbGl6ZT1mdW5jdGlvbihlKXtpZihuLm9rKGUsXCJ3ZSBuZWVkIGEgcGF0aFwiKSxcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gdGhpcy5wYXJzZXIucGFyc2UoZSk7aWYoQXJyYXkuaXNBcnJheShlKSYmXCJzdHJpbmdcIj09dHlwZW9mIGVbMF0pe3ZhciB0PVt7ZXhwcmVzc2lvbjp7dHlwZTpcInJvb3RcIix2YWx1ZTpcIiRcIn19XTtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKGUscil7aWYoXCIkXCIhPWV8fDAhPT1yKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSYmZS5tYXRjaChcIl5cIitpLmlkZW50aWZpZXIrXCIkXCIpKXQucHVzaCh7b3BlcmF0aW9uOlwibWVtYmVyXCIsc2NvcGU6XCJjaGlsZFwiLGV4cHJlc3Npb246e3ZhbHVlOmUsdHlwZTpcImlkZW50aWZpZXJcIn19KTtlbHNle3ZhciBuPVwibnVtYmVyXCI9PXR5cGVvZiBlP1wibnVtZXJpY19saXRlcmFsXCI6XCJzdHJpbmdfbGl0ZXJhbFwiO3QucHVzaCh7b3BlcmF0aW9uOlwic3Vic2NyaXB0XCIsc2NvcGU6XCJjaGlsZFwiLGV4cHJlc3Npb246e3ZhbHVlOmUsdHlwZTpufX0pfX19KSx0fWlmKEFycmF5LmlzQXJyYXkoZSkmJlwib2JqZWN0XCI9PXR5cGVvZiBlWzBdKXJldHVybiBlO3Rocm93IEVycm9yKFwiY291bGRuJ3QgdW5kZXJzdGFuZCBwYXRoIFwiK2UpfSxzLkhhbmRsZXJzPW8scy5QYXJzZXI9YTt2YXIgdT1uZXcgczt1LkpTT05QYXRoPXMsdC5leHBvcnRzPXV9LHtcIi4vZGljdFwiOjIsXCIuL2hhbmRsZXJzXCI6NCxcIi4vcGFyc2VyXCI6Nixhc3NlcnQ6OH1dLDY6W2Z1bmN0aW9uKGUsdCxyKXt2YXIgbj1lKFwiLi9ncmFtbWFyXCIpLGk9ZShcIi4uL2dlbmVyYXRlZC9wYXJzZXJcIiksYT1mdW5jdGlvbigpe3ZhciBlPW5ldyBpLlBhcnNlcix0PWUucGFyc2VFcnJvcjtyZXR1cm4gZS55eS5wYXJzZUVycm9yPWZ1bmN0aW9uKCl7ZS55eS5hc3QmJmUueXkuYXN0LmluaXRpYWxpemUoKSx0LmFwcGx5KGUsYXJndW1lbnRzKX0sZX07YS5ncmFtbWFyPW4sdC5leHBvcnRzPWF9LHtcIi4uL2dlbmVyYXRlZC9wYXJzZXJcIjoxLFwiLi9ncmFtbWFyXCI6M31dLDc6W2Z1bmN0aW9uKGUsdCxyKXt0LmV4cG9ydHM9ZnVuY3Rpb24oZSx0LHIsaSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIHQpdGhyb3cgRXJyb3IoXCJzdGFydCBjYW5ub3QgYmUgYSBzdHJpbmdcIik7aWYoXCJzdHJpbmdcIj09dHlwZW9mIHIpdGhyb3cgRXJyb3IoXCJlbmQgY2Fubm90IGJlIGEgc3RyaW5nXCIpO2lmKFwic3RyaW5nXCI9PXR5cGVvZiBpKXRocm93IEVycm9yKFwic3RlcCBjYW5ub3QgYmUgYSBzdHJpbmdcIik7dmFyIGE9ZS5sZW5ndGg7aWYoMD09PWkpdGhyb3cgRXJyb3IoXCJzdGVwIGNhbm5vdCBiZSB6ZXJvXCIpO2lmKGk9aT9uKGkpOjEsdD10PDA/YSt0OnQscj1yPDA/YStyOnIsdD1uKDA9PT10PzA6dHx8KGk+MD8wOmEtMSkpLHI9bigwPT09cj8wOnJ8fChpPjA/YTotMSkpLHQ9aT4wP01hdGgubWF4KDAsdCk6TWF0aC5taW4oYSx0KSxyPWk+MD9NYXRoLm1pbihyLGEpOk1hdGgubWF4KC0xLHIpLGk+MCYmcjw9dHx8aTwwJiZ0PD1yKXJldHVybltdO2Zvcih2YXIgbz1bXSxzPXQ7cyE9ciYmKCEoaTwwKXx8IShzPD1yKSkmJighKGk+MCl8fCEocz49cikpO3MrPWkpby5wdXNoKGVbc10pO3JldHVybiBvfTtmdW5jdGlvbiBuKGUpe3JldHVybiBTdHJpbmcoZSkubWF0Y2goL15bMC05XSskLyk/cGFyc2VJbnQoZSk6TnVtYmVyLmlzRmluaXRlKGUpP3BhcnNlSW50KGUsMTApOjB9fSx7fV0sODpbZnVuY3Rpb24oZSx0LHIpe3ZhciBuPWUoXCJ1dGlsL1wiKSxpPUFycmF5LnByb3RvdHlwZS5zbGljZSxhPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksbz10LmV4cG9ydHM9cDtmdW5jdGlvbiBzKGUsdCl7cmV0dXJuIG4uaXNVbmRlZmluZWQodCk/XCJcIit0Om4uaXNOdW1iZXIodCkmJiFpc0Zpbml0ZSh0KXx8bi5pc0Z1bmN0aW9uKHQpfHxuLmlzUmVnRXhwKHQpP3QudG9TdHJpbmcoKTp0fWZ1bmN0aW9uIGwoZSx0KXtyZXR1cm4gbi5pc1N0cmluZyhlKT9lLmxlbmd0aDx0P2U6ZS5zbGljZSgwLHQpOmV9ZnVuY3Rpb24gdShlKXtyZXR1cm4gbChKU09OLnN0cmluZ2lmeShlLmFjdHVhbCxzKSwxMjgpK1wiIFwiK2Uub3BlcmF0b3IrXCIgXCIrbChKU09OLnN0cmluZ2lmeShlLmV4cGVjdGVkLHMpLDEyOCl9ZnVuY3Rpb24gYyhlLHQscixuLGkpe3Rocm93IG5ldyBvLkFzc2VydGlvbkVycm9yKHttZXNzYWdlOnIsYWN0dWFsOmUsZXhwZWN0ZWQ6dCxvcGVyYXRvcjpuLHN0YWNrU3RhcnRGdW5jdGlvbjppfSl9ZnVuY3Rpb24gcChlLHQpe2V8fGMoZSwhMCx0LFwiPT1cIixvLm9rKX1mdW5jdGlvbiBkKGUsdCl7aWYoZT09PXQpcmV0dXJuITA7aWYobi5pc0J1ZmZlcihlKSYmbi5pc0J1ZmZlcih0KSl7aWYoZS5sZW5ndGghPXQubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKWlmKGVbcl0hPT10W3JdKXJldHVybiExO3JldHVybiEwfWlmKG4uaXNEYXRlKGUpJiZuLmlzRGF0ZSh0KSlyZXR1cm4gZS5nZXRUaW1lKCk9PT10LmdldFRpbWUoKTtpZihuLmlzUmVnRXhwKGUpJiZuLmlzUmVnRXhwKHQpKXJldHVybiBlLnNvdXJjZT09PXQuc291cmNlJiZlLmdsb2JhbD09PXQuZ2xvYmFsJiZlLm11bHRpbGluZT09PXQubXVsdGlsaW5lJiZlLmxhc3RJbmRleD09PXQubGFzdEluZGV4JiZlLmlnbm9yZUNhc2U9PT10Lmlnbm9yZUNhc2U7aWYoIW4uaXNPYmplY3QoZSkmJiFuLmlzT2JqZWN0KHQpKXJldHVybiBlPT10O2Vsc2UgcmV0dXJuIGYoZSx0KX1mdW5jdGlvbiBoKGUpe3JldHVyblwiW29iamVjdCBBcmd1bWVudHNdXCI9PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKX1mdW5jdGlvbiBmKGUsdCl7aWYobi5pc051bGxPclVuZGVmaW5lZChlKXx8bi5pc051bGxPclVuZGVmaW5lZCh0KXx8ZS5wcm90b3R5cGUhPT10LnByb3RvdHlwZSlyZXR1cm4hMTtpZihuLmlzUHJpbWl0aXZlKGUpfHxuLmlzUHJpbWl0aXZlKHQpKXJldHVybiBlPT09dDt2YXIgcj1oKGUpLGE9aCh0KTtpZihyJiYhYXx8IXImJmEpcmV0dXJuITE7aWYocilyZXR1cm4gZChlPWkuY2FsbChlKSx0PWkuY2FsbCh0KSk7dmFyIG8scyxsPXkoZSksdT15KHQpO2lmKGwubGVuZ3RoIT11Lmxlbmd0aClyZXR1cm4hMTtmb3IobC5zb3J0KCksdS5zb3J0KCkscz1sLmxlbmd0aC0xO3M+PTA7cy0tKWlmKGxbc10hPXVbc10pcmV0dXJuITE7Zm9yKHM9bC5sZW5ndGgtMTtzPj0wO3MtLSlpZighZChlW289bFtzXV0sdFtvXSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gbShlLHQpe3JldHVybiEhZSYmISF0JiYoXCJbb2JqZWN0IFJlZ0V4cF1cIj09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpP3QudGVzdChlKTplIGluc3RhbmNlb2YgdHx8ITA9PT10LmNhbGwoe30sZSkpfWZ1bmN0aW9uIGcoZSx0LHIsaSl7dmFyIGE7bi5pc1N0cmluZyhyKSYmKGk9cixyPW51bGwpO3RyeXt0KCl9Y2F0Y2goZSl7YT1lfWlmKGk9KHImJnIubmFtZT9cIiAoXCIrci5uYW1lK1wiKS5cIjpcIi5cIikrKGk/XCIgXCIraTpcIi5cIiksZSYmIWEmJmMoYSxyLFwiTWlzc2luZyBleHBlY3RlZCBleGNlcHRpb25cIitpKSwhZSYmbShhLHIpJiZjKGEscixcIkdvdCB1bndhbnRlZCBleGNlcHRpb25cIitpKSxlJiZhJiZyJiYhbShhLHIpfHwhZSYmYSl0aHJvdyBhfW8uQXNzZXJ0aW9uRXJyb3I9ZnVuY3Rpb24oZSl7dGhpcy5uYW1lPVwiQXNzZXJ0aW9uRXJyb3JcIix0aGlzLmFjdHVhbD1lLmFjdHVhbCx0aGlzLmV4cGVjdGVkPWUuZXhwZWN0ZWQsdGhpcy5vcGVyYXRvcj1lLm9wZXJhdG9yLGUubWVzc2FnZT8odGhpcy5tZXNzYWdlPWUubWVzc2FnZSx0aGlzLmdlbmVyYXRlZE1lc3NhZ2U9ITEpOih0aGlzLm1lc3NhZ2U9dSh0aGlzKSx0aGlzLmdlbmVyYXRlZE1lc3NhZ2U9ITApO3ZhciB0PWUuc3RhY2tTdGFydEZ1bmN0aW9ufHxjO2lmKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKUVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsdCk7ZWxzZXt2YXIgcj1FcnJvcigpO2lmKHIuc3RhY2spe3ZhciBuPXIuc3RhY2ssaT10Lm5hbWUsYT1uLmluZGV4T2YoXCJcXG5cIitpKTtpZihhPj0wKXt2YXIgbz1uLmluZGV4T2YoXCJcXG5cIixhKzEpO249bi5zdWJzdHJpbmcobysxKX10aGlzLnN0YWNrPW59fX0sbi5pbmhlcml0cyhvLkFzc2VydGlvbkVycm9yLEVycm9yKSxvLmZhaWw9YyxvLm9rPXAsby5lcXVhbD1mdW5jdGlvbihlLHQscil7ZSE9dCYmYyhlLHQscixcIj09XCIsby5lcXVhbCl9LG8ubm90RXF1YWw9ZnVuY3Rpb24oZSx0LHIpe2U9PXQmJmMoZSx0LHIsXCIhPVwiLG8ubm90RXF1YWwpfSxvLmRlZXBFcXVhbD1mdW5jdGlvbihlLHQscil7ZChlLHQpfHxjKGUsdCxyLFwiZGVlcEVxdWFsXCIsby5kZWVwRXF1YWwpfSxvLm5vdERlZXBFcXVhbD1mdW5jdGlvbihlLHQscil7ZChlLHQpJiZjKGUsdCxyLFwibm90RGVlcEVxdWFsXCIsby5ub3REZWVwRXF1YWwpfSxvLnN0cmljdEVxdWFsPWZ1bmN0aW9uKGUsdCxyKXtlIT09dCYmYyhlLHQscixcIj09PVwiLG8uc3RyaWN0RXF1YWwpfSxvLm5vdFN0cmljdEVxdWFsPWZ1bmN0aW9uKGUsdCxyKXtlPT09dCYmYyhlLHQscixcIiE9PVwiLG8ubm90U3RyaWN0RXF1YWwpfSxvLnRocm93cz1mdW5jdGlvbihlLHQscil7Zy5hcHBseSh0aGlzLFshMF0uY29uY2F0KGkuY2FsbChhcmd1bWVudHMpKSl9LG8uZG9lc05vdFRocm93PWZ1bmN0aW9uKGUsdCl7Zy5hcHBseSh0aGlzLFshMV0uY29uY2F0KGkuY2FsbChhcmd1bWVudHMpKSl9LG8uaWZFcnJvcj1mdW5jdGlvbihlKXtpZihlKXRocm93IGV9O3ZhciB5PU9iamVjdC5rZXlzfHxmdW5jdGlvbihlKXt2YXIgdD1bXTtmb3IodmFyIHIgaW4gZSlhLmNhbGwoZSxyKSYmdC5wdXNoKHIpO3JldHVybiB0fX0se1widXRpbC9cIjoxMX1dLDk6W2Z1bmN0aW9uKGUsdCxyKXtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuY3JlYXRlP3QuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2Uuc3VwZXJfPXQsZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0LnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmUsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSl9OnQuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2Uuc3VwZXJfPXQ7dmFyIHI9ZnVuY3Rpb24oKXt9O3IucHJvdG90eXBlPXQucHJvdG90eXBlLGUucHJvdG90eXBlPW5ldyByLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWV9fSx7fV0sMTA6W2Z1bmN0aW9uKGUsdCxyKXt0LmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJlwib2JqZWN0XCI9PXR5cGVvZiBlJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBlLmNvcHkmJlwiZnVuY3Rpb25cIj09dHlwZW9mIGUuZmlsbCYmXCJmdW5jdGlvblwiPT10eXBlb2YgZS5yZWFkVUludDh9fSx7fV0sMTE6W2Z1bmN0aW9uKGUsdCxyKXsoZnVuY3Rpb24odCxuKXt2YXIgaSxhPS8lW3NkaiVdL2c7ci5mb3JtYXQ9ZnVuY3Rpb24oZSl7aWYoIXcoZSkpe2Zvcih2YXIgdD1bXSxyPTA7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyl0LnB1c2gocyhhcmd1bWVudHNbcl0pKTtyZXR1cm4gdC5qb2luKFwiIFwiKX1mb3IodmFyIHI9MSxuPWFyZ3VtZW50cyxpPW4ubGVuZ3RoLG89U3RyaW5nKGUpLnJlcGxhY2UoYSxmdW5jdGlvbihlKXtpZihcIiUlXCI9PT1lKXJldHVyblwiJVwiO2lmKHI+PWkpcmV0dXJuIGU7c3dpdGNoKGUpe2Nhc2VcIiVzXCI6cmV0dXJuIFN0cmluZyhuW3IrK10pO2Nhc2VcIiVkXCI6cmV0dXJuIE51bWJlcihuW3IrK10pO2Nhc2VcIiVqXCI6dHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeShuW3IrK10pfWNhdGNoKGUpe3JldHVyblwiW0NpcmN1bGFyXVwifWRlZmF1bHQ6cmV0dXJuIGV9fSksbD1uW3JdO3I8aTtsPW5bKytyXSl2KGwpfHwhQShsKT9vKz1cIiBcIitsOm8rPVwiIFwiK3MobCk7cmV0dXJuIG99LHIuZGVwcmVjYXRlPWZ1bmN0aW9uKGUsaSl7aWYoUyhuLnByb2Nlc3MpKXJldHVybiBmdW5jdGlvbigpe3JldHVybiByLmRlcHJlY2F0ZShlLGkpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07aWYoITA9PT10Lm5vRGVwcmVjYXRpb24pcmV0dXJuIGU7dmFyIGE9ITE7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoIWEpe2lmKHQudGhyb3dEZXByZWNhdGlvbil0aHJvdyBFcnJvcihpKTt0LnRyYWNlRGVwcmVjYXRpb24/Y29uc29sZS50cmFjZShpKTpjb25zb2xlLmVycm9yKGkpLGE9ITB9cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX07dmFyIG89e307ZnVuY3Rpb24gcyhlLHQpe3ZhciBuPXtzZWVuOltdLHN0eWxpemU6dX07cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+PTMmJihuLmRlcHRoPWFyZ3VtZW50c1syXSksYXJndW1lbnRzLmxlbmd0aD49NCYmKG4uY29sb3JzPWFyZ3VtZW50c1szXSksXyh0KT9uLnNob3dIaWRkZW49dDp0JiZyLl9leHRlbmQobix0KSxTKG4uc2hvd0hpZGRlbikmJihuLnNob3dIaWRkZW49ITEpLFMobi5kZXB0aCkmJihuLmRlcHRoPTIpLFMobi5jb2xvcnMpJiYobi5jb2xvcnM9ITEpLFMobi5jdXN0b21JbnNwZWN0KSYmKG4uY3VzdG9tSW5zcGVjdD0hMCksbi5jb2xvcnMmJihuLnN0eWxpemU9bCkscChuLGUsbi5kZXB0aCl9ZnVuY3Rpb24gbChlLHQpe3ZhciByPXMuc3R5bGVzW3RdO3JldHVybiByP1wiXFx4MWJbXCIrcy5jb2xvcnNbcl1bMF0rXCJtXCIrZStcIlxceDFiW1wiK3MuY29sb3JzW3JdWzFdK1wibVwiOmV9ZnVuY3Rpb24gdShlLHQpe3JldHVybiBlfWZ1bmN0aW9uIGMoZSl7dmFyIHQ9e307cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbihlLHIpe3RbZV09ITB9KSx0fWZ1bmN0aW9uIHAoZSx0LG4pe2lmKGUuY3VzdG9tSW5zcGVjdCYmdCYmSSh0Lmluc3BlY3QpJiZ0Lmluc3BlY3QhPT1yLmluc3BlY3QmJiEodC5jb25zdHJ1Y3RvciYmdC5jb25zdHJ1Y3Rvci5wcm90b3R5cGU9PT10KSl7dmFyIGksYT10Lmluc3BlY3QobixlKTtyZXR1cm4gdyhhKXx8KGE9cChlLGEsbikpLGF9dmFyIG89ZChlLHQpO2lmKG8pcmV0dXJuIG87dmFyIHM9T2JqZWN0LmtleXModCksbD1jKHMpO2lmKGUuc2hvd0hpZGRlbiYmKHM9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModCkpLGsodCkmJihzLmluZGV4T2YoXCJtZXNzYWdlXCIpPj0wfHxzLmluZGV4T2YoXCJkZXNjcmlwdGlvblwiKT49MCkpcmV0dXJuIGgodCk7aWYoMD09PXMubGVuZ3RoKXtpZihJKHQpKXt2YXIgdT10Lm5hbWU/XCI6IFwiK3QubmFtZTpcIlwiO3JldHVybiBlLnN0eWxpemUoXCJbRnVuY3Rpb25cIit1K1wiXVwiLFwic3BlY2lhbFwiKX1pZihFKHQpKXJldHVybiBlLnN0eWxpemUoUmVnRXhwLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpLFwicmVnZXhwXCIpO2lmKHgodCkpcmV0dXJuIGUuc3R5bGl6ZShEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpLFwiZGF0ZVwiKTtpZihrKHQpKXJldHVybiBoKHQpfXZhciBfPVwiXCIsdj0hMSxiPVtcIntcIixcIn1cIl07cmV0dXJuKHkodCkmJih2PSEwLGI9W1wiW1wiLFwiXVwiXSksSSh0KSYmKF89XCIgW0Z1bmN0aW9uXCIrKHQubmFtZT9cIjogXCIrdC5uYW1lOlwiXCIpK1wiXVwiKSxFKHQpJiYoXz1cIiBcIitSZWdFeHAucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCkpLHgodCkmJihfPVwiIFwiK0RhdGUucHJvdG90eXBlLnRvVVRDU3RyaW5nLmNhbGwodCkpLGsodCkmJihfPVwiIFwiK2godCkpLDAhPT1zLmxlbmd0aHx8diYmMCE9dC5sZW5ndGgpP248MD9FKHQpP2Uuc3R5bGl6ZShSZWdFeHAucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCksXCJyZWdleHBcIik6ZS5zdHlsaXplKFwiW09iamVjdF1cIixcInNwZWNpYWxcIik6KGUuc2Vlbi5wdXNoKHQpLGk9dj9mKGUsdCxuLGwscyk6cy5tYXAoZnVuY3Rpb24ocil7cmV0dXJuIG0oZSx0LG4sbCxyLHYpfSksZS5zZWVuLnBvcCgpLGcoaSxfLGIpKTpiWzBdK18rYlsxXX1mdW5jdGlvbiBkKGUsdCl7aWYoUyh0KSlyZXR1cm4gZS5zdHlsaXplKFwidW5kZWZpbmVkXCIsXCJ1bmRlZmluZWRcIik7aWYodyh0KSl7dmFyIHI9XCInXCIrSlNPTi5zdHJpbmdpZnkodCkucmVwbGFjZSgvXlwifFwiJC9nLFwiXCIpLnJlcGxhY2UoLycvZyxcIlxcXFwnXCIpLnJlcGxhY2UoL1xcXFxcIi9nLCdcIicpK1wiJ1wiO3JldHVybiBlLnN0eWxpemUocixcInN0cmluZ1wiKX1yZXR1cm4gYih0KT9lLnN0eWxpemUoXCJcIit0LFwibnVtYmVyXCIpOl8odCk/ZS5zdHlsaXplKFwiXCIrdCxcImJvb2xlYW5cIik6dih0KT9lLnN0eWxpemUoXCJudWxsXCIsXCJudWxsXCIpOnZvaWQgMH1mdW5jdGlvbiBoKGUpe3JldHVyblwiW1wiK0Vycm9yLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpK1wiXVwifWZ1bmN0aW9uIGYoZSx0LHIsbixpKXtmb3IodmFyIGE9W10sbz0wLHM9dC5sZW5ndGg7bzxzOysrbylDKHQsU3RyaW5nKG8pKT9hLnB1c2gobShlLHQscixuLFN0cmluZyhvKSwhMCkpOmEucHVzaChcIlwiKTtyZXR1cm4gaS5mb3JFYWNoKGZ1bmN0aW9uKGkpe2kubWF0Y2goL15cXGQrJC8pfHxhLnB1c2gobShlLHQscixuLGksITApKX0pLGF9ZnVuY3Rpb24gbShlLHQscixuLGksYSl7dmFyIG8scyxsO2lmKChsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxpKXx8e3ZhbHVlOnRbaV19KS5nZXQ/cz1sLnNldD9lLnN0eWxpemUoXCJbR2V0dGVyL1NldHRlcl1cIixcInNwZWNpYWxcIik6ZS5zdHlsaXplKFwiW0dldHRlcl1cIixcInNwZWNpYWxcIik6bC5zZXQmJihzPWUuc3R5bGl6ZShcIltTZXR0ZXJdXCIsXCJzcGVjaWFsXCIpKSxDKG4saSl8fChvPVwiW1wiK2krXCJdXCIpLCFzJiYoMD5lLnNlZW4uaW5kZXhPZihsLnZhbHVlKT8ocz12KHIpP3AoZSxsLnZhbHVlLG51bGwpOnAoZSxsLnZhbHVlLHItMSkpLmluZGV4T2YoXCJcXG5cIik+LTEmJihzPWE/cy5zcGxpdChcIlxcblwiKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuXCIgIFwiK2V9KS5qb2luKFwiXFxuXCIpLnN1YnN0cigyKTpcIlxcblwiK3Muc3BsaXQoXCJcXG5cIikubWFwKGZ1bmN0aW9uKGUpe3JldHVyblwiICAgXCIrZX0pLmpvaW4oXCJcXG5cIikpOnM9ZS5zdHlsaXplKFwiW0NpcmN1bGFyXVwiLFwic3BlY2lhbFwiKSksUyhvKSl7aWYoYSYmaS5tYXRjaCgvXlxcZCskLykpcmV0dXJuIHM7KG89SlNPTi5zdHJpbmdpZnkoXCJcIitpKSkubWF0Y2goL15cIihbYS16QS1aX11bYS16QS1aXzAtOV0qKVwiJC8pPyhvPW8uc3Vic3RyKDEsby5sZW5ndGgtMiksbz1lLnN0eWxpemUobyxcIm5hbWVcIikpOihvPW8ucmVwbGFjZSgvJy9nLFwiXFxcXCdcIikucmVwbGFjZSgvXFxcXFwiL2csJ1wiJykucmVwbGFjZSgvKF5cInxcIiQpL2csXCInXCIpLG89ZS5zdHlsaXplKG8sXCJzdHJpbmdcIikpfXJldHVybiBvK1wiOiBcIitzfWZ1bmN0aW9uIGcoZSx0LHIpe3ZhciBuPTA7cmV0dXJuIGUucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIG4rKyx0LmluZGV4T2YoXCJcXG5cIik+PTAmJm4rKyxlK3QucmVwbGFjZSgvXFx1MDAxYlxcW1xcZFxcZD9tL2csXCJcIikubGVuZ3RoKzF9LDApPjYwP3JbMF0rKFwiXCI9PT10P1wiXCI6dCtcIlxcbiBcIikrXCIgXCIrZS5qb2luKFwiLFxcbiAgXCIpK1wiIFwiK3JbMV06clswXSt0K1wiIFwiK2Uuam9pbihcIiwgXCIpK1wiIFwiK3JbMV19ZnVuY3Rpb24geShlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKX1mdW5jdGlvbiBfKGUpe3JldHVyblwiYm9vbGVhblwiPT10eXBlb2YgZX1mdW5jdGlvbiB2KGUpe3JldHVybiBudWxsPT09ZX1mdW5jdGlvbiBiKGUpe3JldHVyblwibnVtYmVyXCI9PXR5cGVvZiBlfWZ1bmN0aW9uIHcoZSl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIGV9ZnVuY3Rpb24gUyhlKXtyZXR1cm4gdm9pZCAwPT09ZX1mdW5jdGlvbiBFKGUpe3JldHVybiBBKGUpJiZcIltvYmplY3QgUmVnRXhwXVwiPT09TyhlKX1mdW5jdGlvbiBBKGUpe3JldHVyblwib2JqZWN0XCI9PXR5cGVvZiBlJiZudWxsIT09ZX1mdW5jdGlvbiB4KGUpe3JldHVybiBBKGUpJiZcIltvYmplY3QgRGF0ZV1cIj09PU8oZSl9ZnVuY3Rpb24gayhlKXtyZXR1cm4gQShlKSYmKFwiW29iamVjdCBFcnJvcl1cIj09PU8oZSl8fGUgaW5zdGFuY2VvZiBFcnJvcil9ZnVuY3Rpb24gSShlKXtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZiBlfWZ1bmN0aW9uIE8oZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKX1mdW5jdGlvbiBqKGUpe3JldHVybiBlPDEwP1wiMFwiK2UudG9TdHJpbmcoMTApOmUudG9TdHJpbmcoMTApfXIuZGVidWdsb2c9ZnVuY3Rpb24oZSl7aWYoUyhpKSYmKGk9dC5lbnYuTk9ERV9ERUJVR3x8XCJcIiksIW9bZT1lLnRvVXBwZXJDYXNlKCldKXtpZihSZWdFeHAoXCJcXFxcYlwiK2UrXCJcXFxcYlwiLFwiaVwiKS50ZXN0KGkpKXt2YXIgbj10LnBpZDtvW2VdPWZ1bmN0aW9uKCl7dmFyIHQ9ci5mb3JtYXQuYXBwbHkocixhcmd1bWVudHMpO2NvbnNvbGUuZXJyb3IoXCIlcyAlZDogJXNcIixlLG4sdCl9fWVsc2Ugb1tlXT1mdW5jdGlvbigpe319cmV0dXJuIG9bZV19LHIuaW5zcGVjdD1zLHMuY29sb3JzPXtib2xkOlsxLDIyXSxpdGFsaWM6WzMsMjNdLHVuZGVybGluZTpbNCwyNF0saW52ZXJzZTpbNywyN10sd2hpdGU6WzM3LDM5XSxncmV5Ols5MCwzOV0sYmxhY2s6WzMwLDM5XSxibHVlOlszNCwzOV0sY3lhbjpbMzYsMzldLGdyZWVuOlszMiwzOV0sbWFnZW50YTpbMzUsMzldLHJlZDpbMzEsMzldLHllbGxvdzpbMzMsMzldfSxzLnN0eWxlcz17c3BlY2lhbDpcImN5YW5cIixudW1iZXI6XCJ5ZWxsb3dcIixib29sZWFuOlwieWVsbG93XCIsdW5kZWZpbmVkOlwiZ3JleVwiLG51bGw6XCJib2xkXCIsc3RyaW5nOlwiZ3JlZW5cIixkYXRlOlwibWFnZW50YVwiLHJlZ2V4cDpcInJlZFwifSxyLmlzQXJyYXk9eSxyLmlzQm9vbGVhbj1fLHIuaXNOdWxsPXYsci5pc051bGxPclVuZGVmaW5lZD1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZX0sci5pc051bWJlcj1iLHIuaXNTdHJpbmc9dyxyLmlzU3ltYm9sPWZ1bmN0aW9uKGUpe3JldHVyblwic3ltYm9sXCI9PXR5cGVvZiBlfSxyLmlzVW5kZWZpbmVkPVMsci5pc1JlZ0V4cD1FLHIuaXNPYmplY3Q9QSxyLmlzRGF0ZT14LHIuaXNFcnJvcj1rLHIuaXNGdW5jdGlvbj1JLHIuaXNQcmltaXRpdmU9ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PT1lfHxcImJvb2xlYW5cIj09dHlwZW9mIGV8fFwibnVtYmVyXCI9PXR5cGVvZiBlfHxcInN0cmluZ1wiPT10eXBlb2YgZXx8XCJzeW1ib2xcIj09dHlwZW9mIGV8fHZvaWQgMD09PWV9LHIuaXNCdWZmZXI9ZShcIi4vc3VwcG9ydC9pc0J1ZmZlclwiKTt2YXIgVD1bXCJKYW5cIixcIkZlYlwiLFwiTWFyXCIsXCJBcHJcIixcIk1heVwiLFwiSnVuXCIsXCJKdWxcIixcIkF1Z1wiLFwiU2VwXCIsXCJPY3RcIixcIk5vdlwiLFwiRGVjXCJdO2Z1bmN0aW9uIFAoKXt2YXIgZT1uZXcgRGF0ZSx0PVtqKGUuZ2V0SG91cnMoKSksaihlLmdldE1pbnV0ZXMoKSksaihlLmdldFNlY29uZHMoKSldLmpvaW4oXCI6XCIpO3JldHVybltlLmdldERhdGUoKSxUW2UuZ2V0TW9udGgoKV0sdF0uam9pbihcIiBcIil9ZnVuY3Rpb24gQyhlLHQpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx0KX1yLmxvZz1mdW5jdGlvbigpe2NvbnNvbGUubG9nKFwiJXMgLSAlc1wiLFAoKSxyLmZvcm1hdC5hcHBseShyLGFyZ3VtZW50cykpfSxyLmluaGVyaXRzPWUoXCJpbmhlcml0c1wiKSxyLl9leHRlbmQ9ZnVuY3Rpb24oZSx0KXtpZighdHx8IUEodCkpcmV0dXJuIGU7Zm9yKHZhciByPU9iamVjdC5rZXlzKHQpLG49ci5sZW5ndGg7bi0tOyllW3Jbbl1dPXRbcltuXV07cmV0dXJuIGV9fSkuY2FsbCh0aGlzLGUoXCJfcHJvY2Vzc1wiKSx2b2lkIDAhPT0kcGFyY2VsJGdsb2JhbD8kcGFyY2VsJGdsb2JhbDpcInVuZGVmaW5lZFwiIT10eXBlb2Ygc2VsZj9zZWxmOlwidW5kZWZpbmVkXCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9KX0se1wiLi9zdXBwb3J0L2lzQnVmZmVyXCI6MTAsX3Byb2Nlc3M6MTQsaW5oZXJpdHM6OX1dLDEyOltmdW5jdGlvbihlLHQscil7fSx7fV0sMTM6W2Z1bmN0aW9uKGUsdCxyKXsoZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChlLHQpe2Zvcih2YXIgcj0wLG49ZS5sZW5ndGgtMTtuPj0wO24tLSl7dmFyIGk9ZVtuXTtcIi5cIj09PWk/ZS5zcGxpY2UobiwxKTpcIi4uXCI9PT1pPyhlLnNwbGljZShuLDEpLHIrKyk6ciYmKGUuc3BsaWNlKG4sMSksci0tKX1pZih0KWZvcig7ci0tO3IpZS51bnNoaWZ0KFwiLi5cIik7cmV0dXJuIGV9ZnVuY3Rpb24gbihlKXtcInN0cmluZ1wiIT10eXBlb2YgZSYmKGUrPVwiXCIpO3ZhciB0LHI9MCxuPS0xLGk9ITA7Zm9yKHQ9ZS5sZW5ndGgtMTt0Pj0wOy0tdClpZig0Nz09PWUuY2hhckNvZGVBdCh0KSl7aWYoIWkpe3I9dCsxO2JyZWFrfX1lbHNlIC0xPT09biYmKGk9ITEsbj10KzEpO3JldHVybiAtMT09PW4/XCJcIjplLnNsaWNlKHIsbil9ZnVuY3Rpb24gaShlLHQpe2lmKGUuZmlsdGVyKXJldHVybiBlLmZpbHRlcih0KTtmb3IodmFyIHI9W10sbj0wO248ZS5sZW5ndGg7bisrKXQoZVtuXSxuLGUpJiZyLnB1c2goZVtuXSk7cmV0dXJuIHJ9ci5yZXNvbHZlPWZ1bmN0aW9uKCl7Zm9yKHZhciByPVwiXCIsbj0hMSxhPWFyZ3VtZW50cy5sZW5ndGgtMTthPj0tMSYmIW47YS0tKXt2YXIgbz1hPj0wP2FyZ3VtZW50c1thXTplLmN3ZCgpO2lmKFwic3RyaW5nXCIhPXR5cGVvZiBvKXRocm93IFR5cGVFcnJvcihcIkFyZ3VtZW50cyB0byBwYXRoLnJlc29sdmUgbXVzdCBiZSBzdHJpbmdzXCIpO28mJihyPW8rXCIvXCIrcixuPVwiL1wiPT09by5jaGFyQXQoMCkpfXJldHVybiByPXQoaShyLnNwbGl0KFwiL1wiKSxmdW5jdGlvbihlKXtyZXR1cm4hIWV9KSwhbikuam9pbihcIi9cIiksKG4/XCIvXCI6XCJcIikrcnx8XCIuXCJ9LHIubm9ybWFsaXplPWZ1bmN0aW9uKGUpe3ZhciBuPXIuaXNBYnNvbHV0ZShlKSxvPVwiL1wiPT09YShlLC0xKTtyZXR1cm4oZT10KGkoZS5zcGxpdChcIi9cIiksZnVuY3Rpb24oZSl7cmV0dXJuISFlfSksIW4pLmpvaW4oXCIvXCIpKXx8bnx8KGU9XCIuXCIpLGUmJm8mJihlKz1cIi9cIiksKG4/XCIvXCI6XCJcIikrZX0sci5pc0Fic29sdXRlPWZ1bmN0aW9uKGUpe3JldHVyblwiL1wiPT09ZS5jaGFyQXQoMCl9LHIuam9pbj1mdW5jdGlvbigpe3ZhciBlPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKTtyZXR1cm4gci5ub3JtYWxpemUoaShlLGZ1bmN0aW9uKGUsdCl7aWYoXCJzdHJpbmdcIiE9dHlwZW9mIGUpdGhyb3cgVHlwZUVycm9yKFwiQXJndW1lbnRzIHRvIHBhdGguam9pbiBtdXN0IGJlIHN0cmluZ3NcIik7cmV0dXJuIGV9KS5qb2luKFwiL1wiKSl9LHIucmVsYXRpdmU9ZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBuKGUpe2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGgmJlwiXCI9PT1lW3RdO3QrKyk7Zm9yKHZhciByPWUubGVuZ3RoLTE7cj49MCYmXCJcIj09PWVbcl07ci0tKTtyZXR1cm4gdD5yP1tdOmUuc2xpY2UodCxyLXQrMSl9ZT1yLnJlc29sdmUoZSkuc3Vic3RyKDEpLHQ9ci5yZXNvbHZlKHQpLnN1YnN0cigxKTtmb3IodmFyIGk9bihlLnNwbGl0KFwiL1wiKSksYT1uKHQuc3BsaXQoXCIvXCIpKSxvPU1hdGgubWluKGkubGVuZ3RoLGEubGVuZ3RoKSxzPW8sbD0wO2w8bztsKyspaWYoaVtsXSE9PWFbbF0pe3M9bDticmVha31mb3IodmFyIHU9W10sbD1zO2w8aS5sZW5ndGg7bCsrKXUucHVzaChcIi4uXCIpO3JldHVybih1PXUuY29uY2F0KGEuc2xpY2UocykpKS5qb2luKFwiL1wiKX0sci5zZXA9XCIvXCIsci5kZWxpbWl0ZXI9XCI6XCIsci5kaXJuYW1lPWZ1bmN0aW9uKGUpe2lmKFwic3RyaW5nXCIhPXR5cGVvZiBlJiYoZSs9XCJcIiksMD09PWUubGVuZ3RoKXJldHVyblwiLlwiO2Zvcih2YXIgdD1lLmNoYXJDb2RlQXQoMCkscj00Nz09PXQsbj0tMSxpPSEwLGE9ZS5sZW5ndGgtMTthPj0xOy0tYSlpZig0Nz09PSh0PWUuY2hhckNvZGVBdChhKSkpe2lmKCFpKXtuPWE7YnJlYWt9fWVsc2UgaT0hMTtyZXR1cm4gLTE9PT1uP3I/XCIvXCI6XCIuXCI6ciYmMT09PW4/XCIvXCI6ZS5zbGljZSgwLG4pfSxyLmJhc2VuYW1lPWZ1bmN0aW9uKGUsdCl7dmFyIHI9bihlKTtyZXR1cm4gdCYmci5zdWJzdHIoLTEqdC5sZW5ndGgpPT09dCYmKHI9ci5zdWJzdHIoMCxyLmxlbmd0aC10Lmxlbmd0aCkpLHJ9LHIuZXh0bmFtZT1mdW5jdGlvbihlKXtcInN0cmluZ1wiIT10eXBlb2YgZSYmKGUrPVwiXCIpO2Zvcih2YXIgdD0tMSxyPTAsbj0tMSxpPSEwLGE9MCxvPWUubGVuZ3RoLTE7bz49MDstLW8pe3ZhciBzPWUuY2hhckNvZGVBdChvKTtpZig0Nz09PXMpe2lmKCFpKXtyPW8rMTticmVha31jb250aW51ZX0tMT09PW4mJihpPSExLG49bysxKSw0Nj09PXM/LTE9PT10P3Q9bzoxIT09YSYmKGE9MSk6LTEhPT10JiYoYT0tMSl9cmV0dXJuIC0xPT09dHx8LTE9PT1ufHwwPT09YXx8MT09PWEmJnQ9PT1uLTEmJnQ9PT1yKzE/XCJcIjplLnNsaWNlKHQsbil9O3ZhciBhPVwiYlwiPT09XCJhYlwiLnN1YnN0cigtMSk/ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBlLnN1YnN0cih0LHIpfTpmdW5jdGlvbihlLHQscil7cmV0dXJuIHQ8MCYmKHQ9ZS5sZW5ndGgrdCksZS5zdWJzdHIodCxyKX19KS5jYWxsKHRoaXMsZShcIl9wcm9jZXNzXCIpKX0se19wcm9jZXNzOjE0fV0sMTQ6W2Z1bmN0aW9uKGUsdCxyKXt2YXIgbixpLGEsbz10LmV4cG9ydHM9e307ZnVuY3Rpb24gcygpe3Rocm93IEVycm9yKFwic2V0VGltZW91dCBoYXMgbm90IGJlZW4gZGVmaW5lZFwiKX1mdW5jdGlvbiBsKCl7dGhyb3cgRXJyb3IoXCJjbGVhclRpbWVvdXQgaGFzIG5vdCBiZWVuIGRlZmluZWRcIil9ZnVuY3Rpb24gdShlKXtpZihuPT09c2V0VGltZW91dClyZXR1cm4gc2V0VGltZW91dChlLDApO2lmKChuPT09c3x8IW4pJiZzZXRUaW1lb3V0KXJldHVybiBuPXNldFRpbWVvdXQsc2V0VGltZW91dChlLDApO3RyeXtyZXR1cm4gbihlLDApfWNhdGNoKHQpe3RyeXtyZXR1cm4gbi5jYWxsKG51bGwsZSwwKX1jYXRjaCh0KXtyZXR1cm4gbi5jYWxsKHRoaXMsZSwwKX19fWZ1bmN0aW9uIGMoZSl7aWYoaT09PWNsZWFyVGltZW91dClyZXR1cm4gY2xlYXJUaW1lb3V0KGUpO2lmKChpPT09bHx8IWkpJiZjbGVhclRpbWVvdXQpcmV0dXJuIGk9Y2xlYXJUaW1lb3V0LGNsZWFyVGltZW91dChlKTt0cnl7cmV0dXJuIGkoZSl9Y2F0Y2godCl7dHJ5e3JldHVybiBpLmNhbGwobnVsbCxlKX1jYXRjaCh0KXtyZXR1cm4gaS5jYWxsKHRoaXMsZSl9fX0hZnVuY3Rpb24oKXt0cnl7bj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6c31jYXRjaChlKXtuPXN9dHJ5e2k9XCJmdW5jdGlvblwiPT10eXBlb2YgY2xlYXJUaW1lb3V0P2NsZWFyVGltZW91dDpsfWNhdGNoKGUpe2k9bH19KCk7dmFyIHA9W10sZD0hMSxoPS0xO2Z1bmN0aW9uIGYoKXtkJiZhJiYoZD0hMSxhLmxlbmd0aD9wPWEuY29uY2F0KHApOmg9LTEscC5sZW5ndGgmJm0oKSl9ZnVuY3Rpb24gbSgpe2lmKCFkKXt2YXIgZT11KGYpO2Q9ITA7Zm9yKHZhciB0PXAubGVuZ3RoO3Q7KXtmb3IoYT1wLHA9W107KytoPHQ7KWEmJmFbaF0ucnVuKCk7aD0tMSx0PXAubGVuZ3RofWE9bnVsbCxkPSExLGMoZSl9fWZ1bmN0aW9uIGcoZSx0KXt0aGlzLmZ1bj1lLHRoaXMuYXJyYXk9dH1mdW5jdGlvbiB5KCl7fW8ubmV4dFRpY2s9ZnVuY3Rpb24oZSl7dmFyIHQ9QXJyYXkoYXJndW1lbnRzLmxlbmd0aC0xKTtpZihhcmd1bWVudHMubGVuZ3RoPjEpZm9yKHZhciByPTE7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyl0W3ItMV09YXJndW1lbnRzW3JdO3AucHVzaChuZXcgZyhlLHQpKSwxIT09cC5sZW5ndGh8fGR8fHUobSl9LGcucHJvdG90eXBlLnJ1bj1mdW5jdGlvbigpe3RoaXMuZnVuLmFwcGx5KG51bGwsdGhpcy5hcnJheSl9LG8udGl0bGU9XCJicm93c2VyXCIsby5icm93c2VyPSEwLG8uZW52PXt9LG8uYXJndj1bXSxvLnZlcnNpb249XCJcIixvLnZlcnNpb25zPXt9LG8ub249eSxvLmFkZExpc3RlbmVyPXksby5vbmNlPXksby5vZmY9eSxvLnJlbW92ZUxpc3RlbmVyPXksby5yZW1vdmVBbGxMaXN0ZW5lcnM9eSxvLmVtaXQ9eSxvLnByZXBlbmRMaXN0ZW5lcj15LG8ucHJlcGVuZE9uY2VMaXN0ZW5lcj15LG8ubGlzdGVuZXJzPWZ1bmN0aW9uKGUpe3JldHVybltdfSxvLmJpbmRpbmc9ZnVuY3Rpb24oZSl7dGhyb3cgRXJyb3IoXCJwcm9jZXNzLmJpbmRpbmcgaXMgbm90IHN1cHBvcnRlZFwiKX0sby5jd2Q9ZnVuY3Rpb24oKXtyZXR1cm5cIi9cIn0sby5jaGRpcj1mdW5jdGlvbihlKXt0aHJvdyBFcnJvcihcInByb2Nlc3MuY2hkaXIgaXMgbm90IHN1cHBvcnRlZFwiKX0sby51bWFzaz1mdW5jdGlvbigpe3JldHVybiAwfX0se31dLDE1OltmdW5jdGlvbihlLHQscil7dmFyIG49ZShcImVzY29kZWdlblwiKS5nZW5lcmF0ZTt0LmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt0fHwodD17fSk7dmFyIHI9e30saT1mdW5jdGlvbiBlKGksYSl7aWYoXCJMaXRlcmFsXCI9PT1pLnR5cGUpcmV0dXJuIGkudmFsdWU7aWYoXCJVbmFyeUV4cHJlc3Npb25cIj09PWkudHlwZSl7dmFyIG89ZShpLmFyZ3VtZW50KTtyZXR1cm5cIitcIj09PWkub3BlcmF0b3I/K286XCItXCI9PT1pLm9wZXJhdG9yPy1vOlwiflwiPT09aS5vcGVyYXRvcj9+bzpcIiFcIj09PWkub3BlcmF0b3I/IW86cn1pZihcIkFycmF5RXhwcmVzc2lvblwiPT09aS50eXBlKXtmb3IodmFyIHM9W10sbD0wLHU9aS5lbGVtZW50cy5sZW5ndGg7bDx1O2wrKyl7dmFyIGM9ZShpLmVsZW1lbnRzW2xdKTtpZihjPT09cilyZXR1cm4gcjtzLnB1c2goYyl9cmV0dXJuIHN9aWYoXCJPYmplY3RFeHByZXNzaW9uXCI9PT1pLnR5cGUpe2Zvcih2YXIgcD17fSxsPTA7bDxpLnByb3BlcnRpZXMubGVuZ3RoO2wrKyl7dmFyIGQ9aS5wcm9wZXJ0aWVzW2xdLGg9bnVsbD09PWQudmFsdWU/ZC52YWx1ZTplKGQudmFsdWUpO2lmKGg9PT1yKXJldHVybiByO3BbZC5rZXkudmFsdWV8fGQua2V5Lm5hbWVdPWh9cmV0dXJuIHB9aWYoXCJCaW5hcnlFeHByZXNzaW9uXCI9PT1pLnR5cGV8fFwiTG9naWNhbEV4cHJlc3Npb25cIj09PWkudHlwZSl7dmFyIHU9ZShpLmxlZnQpO2lmKHU9PT1yKXJldHVybiByO3ZhciBmPWUoaS5yaWdodCk7aWYoZj09PXIpcmV0dXJuIHI7dmFyIG09aS5vcGVyYXRvcjtyZXR1cm5cIj09XCI9PT1tP3U9PWY6XCI9PT1cIj09PW0/dT09PWY6XCIhPVwiPT09bT91IT1mOlwiIT09XCI9PT1tP3UhPT1mOlwiK1wiPT09bT91K2Y6XCItXCI9PT1tP3UtZjpcIipcIj09PW0/dSpmOlwiL1wiPT09bT91L2Y6XCIlXCI9PT1tP3UlZjpcIjxcIj09PW0/dTxmOlwiPD1cIj09PW0/dTw9ZjpcIj5cIj09PW0/dT5mOlwiPj1cIj09PW0/dT49ZjpcInxcIj09PW0/dXxmOlwiJlwiPT09bT91JmY6XCJeXCI9PT1tP3VeZjpcIiYmXCI9PT1tP3UmJmY6XCJ8fFwiPT09bT91fHxmOnJ9ZWxzZSBpZihcIklkZW50aWZpZXJcIj09PWkudHlwZSlyZXR1cm4oe30pLmhhc093blByb3BlcnR5LmNhbGwodCxpLm5hbWUpP3RbaS5uYW1lXTpyO2Vsc2UgaWYoXCJUaGlzRXhwcmVzc2lvblwiPT09aS50eXBlKXJldHVybih7fSkuaGFzT3duUHJvcGVydHkuY2FsbCh0LFwidGhpc1wiKT90LnRoaXM6cjtlbHNlIGlmKFwiQ2FsbEV4cHJlc3Npb25cIj09PWkudHlwZSl7dmFyIGc9ZShpLmNhbGxlZSk7aWYoZz09PXJ8fFwiZnVuY3Rpb25cIiE9dHlwZW9mIGcpcmV0dXJuIHI7dmFyIHk9aS5jYWxsZWUub2JqZWN0P2UoaS5jYWxsZWUub2JqZWN0KTpyO3k9PT1yJiYoeT1udWxsKTtmb3IodmFyIF89W10sbD0wLHU9aS5hcmd1bWVudHMubGVuZ3RoO2w8dTtsKyspe3ZhciBjPWUoaS5hcmd1bWVudHNbbF0pO2lmKGM9PT1yKXJldHVybiByO18ucHVzaChjKX1yZXR1cm4gZy5hcHBseSh5LF8pfWVsc2UgaWYoXCJNZW1iZXJFeHByZXNzaW9uXCI9PT1pLnR5cGUpe3ZhciBwPWUoaS5vYmplY3QpO2lmKHA9PT1yfHxcImZ1bmN0aW9uXCI9PXR5cGVvZiBwKXJldHVybiByO2lmKFwiSWRlbnRpZmllclwiPT09aS5wcm9wZXJ0eS50eXBlKXJldHVybiBwW2kucHJvcGVydHkubmFtZV07dmFyIGQ9ZShpLnByb3BlcnR5KTtyZXR1cm4gZD09PXI/cjpwW2RdfWVsc2UgaWYoXCJDb25kaXRpb25hbEV4cHJlc3Npb25cIj09PWkudHlwZSl7dmFyIG89ZShpLnRlc3QpO3JldHVybiBvPT09cj9yOm8/ZShpLmNvbnNlcXVlbnQpOmUoaS5hbHRlcm5hdGUpfWVsc2UgaWYoXCJFeHByZXNzaW9uU3RhdGVtZW50XCI9PT1pLnR5cGUpe3ZhciBvPWUoaS5leHByZXNzaW9uKTtyZXR1cm4gbz09PXI/cjpvfWVsc2UgaWYoXCJSZXR1cm5TdGF0ZW1lbnRcIj09PWkudHlwZSlyZXR1cm4gZShpLmFyZ3VtZW50KTtlbHNlIGlmKFwiRnVuY3Rpb25FeHByZXNzaW9uXCI9PT1pLnR5cGUpe3ZhciB2PWkuYm9keS5ib2R5LGI9e307T2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtiW2VdPXRbZV19KTtmb3IodmFyIGw9MDtsPGkucGFyYW1zLmxlbmd0aDtsKyspe3ZhciB3PWkucGFyYW1zW2xdO2lmKFwiSWRlbnRpZmllclwiIT13LnR5cGUpcmV0dXJuIHI7dFt3Lm5hbWVdPW51bGx9Zm9yKHZhciBsIGluIHYpaWYoZSh2W2xdKT09PXIpcmV0dXJuIHI7dmFyIFM9T2JqZWN0LmtleXModD1iKSxFPVMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0W2VdfSk7cmV0dXJuIEZ1bmN0aW9uKFMuam9pbihcIiwgXCIpLFwicmV0dXJuIFwiK24oaSkpLmFwcGx5KG51bGwsRSl9ZWxzZSBpZihcIlRlbXBsYXRlTGl0ZXJhbFwiPT09aS50eXBlKXtmb3IodmFyIEE9XCJcIixsPTA7bDxpLmV4cHJlc3Npb25zLmxlbmd0aDtsKyspQSs9ZShpLnF1YXNpc1tsXSksQSs9ZShpLmV4cHJlc3Npb25zW2xdKTtyZXR1cm4gQStlKGkucXVhc2lzW2xdKX1lbHNlIGlmKFwiVGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uXCI9PT1pLnR5cGUpe3ZhciB4PWUoaS50YWcpLGs9aS5xdWFzaSxJPWsucXVhc2lzLm1hcChlKSxPPWsuZXhwcmVzc2lvbnMubWFwKGUpO3JldHVybiB4LmFwcGx5KG51bGwsW0ldLmNvbmNhdChPKSl9ZWxzZSBpZihcIlRlbXBsYXRlRWxlbWVudFwiPT09aS50eXBlKXJldHVybiBpLnZhbHVlLmNvb2tlZDtlbHNlIHJldHVybiByfShlKTtyZXR1cm4gaT09PXI/dm9pZCAwOml9fSx7ZXNjb2RlZ2VuOjEyfV0sanNvbnBhdGg6W2Z1bmN0aW9uKGUsdCxyKXt0LmV4cG9ydHM9ZShcIi4vbGliL2luZGV4XCIpfSx7XCIuL2xpYi9pbmRleFwiOjV9XX0se30sW1wianNvbnBhdGhcIl0pKFwianNvbnBhdGhcIil9KTtjbGFzcyAkNzM0Mzc2YmZiYWFhOGI3MSR2YXIkSXRlbXNNYXBwZXJ7Y29uc3RydWN0b3IoZSl7dGhpcy5faXRlbXNNYXA9e30sZS5mb3JFYWNoKChlLHQpPT57dGhpcy5faXRlbXNNYXBbZS5pdGVtX2lkXT10fSl9cHVsbEl0ZW1JbmRleChlKXtsZXQgdD10aGlzLl9pdGVtc01hcFtlXTtyZXR1cm4gZGVsZXRlIHRoaXMuX2l0ZW1zTWFwW2VdLHR9Z2V0SXRlbUluZGV4KGUpe3JldHVybiB0aGlzLl9pdGVtc01hcFtlXX1nZXQgaXRlbXNNYXAoKXtyZXR1cm4gdGhpcy5faXRlbXNNYXB9fWZ1bmN0aW9uICQ3YTZiZTRjMWNmNGQ3ZTQwJGV4cG9ydCRlNWUyNWZiY2MxZjdhZmZlKGUsdCl7bGV0IHIsbj1bXTtlP3I9ZS5zcGxpdChcIixcIik6bj10O2xldCBpPW5ldyBTZXQ7ZnVuY3Rpb24gYShlKXtsZXQgdD0haS5oYXMoZSk7cmV0dXJuIHQmJmkuYWRkKGUpLHR9cmV0dXJuIGUmJnQuZm9yRWFjaChlPT57bGV0IHQ9XCJcIjtyLmZvckVhY2goKGksbyk9PntsZXQgcz1lLmZpZWxkcy5maW5kKGU9PmUuZmllbGRfaWQ9PWkpO3MmJih0Kz1zLmZpZWxkX3ZhbHVlKSxyLmxlbmd0aC0xPT1vJiZhKHQpJiZuLnB1c2goZSl9KX0pLG59ZnVuY3Rpb24gJDRjMmY4YjBkMmUyM2VlNGYkZXhwb3J0JDJlMmJjZDg3MzlhZTAzOShlLHQscil7dmFyIG49SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShlKSk7cmV0dXJuIHI/JDRjMmY4YjBkMmUyM2VlNGYkdmFyJHBvcHVsYXRlSXRlbXNBbmRLZWVwT3RoZXJWYWx1ZXMobix0KTokNGMyZjhiMGQyZTIzZWU0ZiR2YXIkcG9wdWxhdGVJdGVtc0FuZEVyYXNlT3RoZXJWYWx1ZXMobix0KX1mdW5jdGlvbiAkNGMyZjhiMGQyZTIzZWU0ZiR2YXIkcG9wdWxhdGVJdGVtc0FuZEtlZXBPdGhlclZhbHVlcyhlLHQpe3JldHVybiBlLmZvckVhY2goZT0+e3QuZm9yRWFjaCh0PT57bGV0IHI9ZS5maWVsZHMuZmluZChlPT5lLmVsZW1lbnRfaWQ9PXQuZWxlbWVudF9pZCk7cj9yLmZpZWxkX3ZhbHVlPXQuZmllbGRfdmFsdWU6KHQuZmllbGRfaWQ9dC5lbGVtZW50X2lkLGUuZmllbGRzLnB1c2godCkpfSl9KSxlfWZ1bmN0aW9uICQ0YzJmOGIwZDJlMjNlZTRmJHZhciRwb3B1bGF0ZUl0ZW1zQW5kRXJhc2VPdGhlclZhbHVlcyhlLHQpe3JldHVybiBlLmZvckVhY2goZT0+e2UuZmllbGRzPVtdLmNvbmNhdCh0KX0pLGV9dmFyICRmYjVmMDBjNGMzYzIzZjUwJGV4cG9ydHM9e30sJGYzWXd4PXBhcmNlbFJlcXVpcmUoXCJmM1l3eFwiKSwkZmI1ZjAwYzRjM2MyM2Y1MCRyZXF1aXJlJF9pbnRlcm9wUmVxdWlyZURlZmF1bHQ9JGYzWXd4LmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KCRmYjVmMDBjNGMzYzIzZjUwJGV4cG9ydHMsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksJGZiNWYwMGM0YzNjMjNmNTAkZXhwb3J0cy5kZWZhdWx0PSRmYjVmMDBjNGMzYzIzZjUwJHZhciRhZGQ7dmFyICRmYjVmMDBjNGMzYzIzZjUwJHZhciRfdHlwZW9mMj0kZmI1ZjAwYzRjM2MyM2Y1MCRyZXF1aXJlJF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocGFyY2VsUmVxdWlyZShcIjVaV0FaXCIpKSwkZmI1ZjAwYzRjM2MyM2Y1MCR2YXIkX2luZGV4PSRmYjVmMDBjNGMzYzIzZjUwJHJlcXVpcmUkX2ludGVyb3BSZXF1aXJlRGVmYXVsdChwYXJjZWxSZXF1aXJlKFwiZmdxNXlcIikpLCRmYjVmMDBjNGMzYzIzZjUwJHZhciRfaW5kZXgyPSRmYjVmMDBjNGMzYzIzZjUwJHJlcXVpcmUkX2ludGVyb3BSZXF1aXJlRGVmYXVsdChwYXJjZWxSZXF1aXJlKFwiYnl5TzlcIikpLCRmYjVmMDBjNGMzYzIzZjUwJHZhciRfaW5kZXgzPSRmYjVmMDBjNGMzYzIzZjUwJHJlcXVpcmUkX2ludGVyb3BSZXF1aXJlRGVmYXVsdChwYXJjZWxSZXF1aXJlKFwiZ2xSd29cIikpLCRmYjVmMDBjNGMzYzIzZjUwJHZhciRfaW5kZXg0PSRmYjVmMDBjNGMzYzIzZjUwJHJlcXVpcmUkX2ludGVyb3BSZXF1aXJlRGVmYXVsdChwYXJjZWxSZXF1aXJlKFwiYXlSM0dcIikpLCRmYjVmMDBjNGMzYzIzZjUwJHZhciRfaW5kZXg1PSRmYjVmMDBjNGMzYzIzZjUwJHJlcXVpcmUkX2ludGVyb3BSZXF1aXJlRGVmYXVsdChwYXJjZWxSZXF1aXJlKFwiYTlWUXdcIikpO2Z1bmN0aW9uICRmYjVmMDBjNGMzYzIzZjUwJHZhciRhZGQoZSx0KXtpZigoMCwkZmI1ZjAwYzRjM2MyM2Y1MCR2YXIkX2luZGV4NC5kZWZhdWx0KSgyLGFyZ3VtZW50cyksIXR8fFwib2JqZWN0XCIhPT0oMCwkZmI1ZjAwYzRjM2MyM2Y1MCR2YXIkX3R5cGVvZjIuZGVmYXVsdCkodCkpcmV0dXJuIG5ldyBEYXRlKE5hTik7dmFyIHI9dC55ZWFycz8oMCwkZmI1ZjAwYzRjM2MyM2Y1MCR2YXIkX2luZGV4NS5kZWZhdWx0KSh0LnllYXJzKTowLG49dC5tb250aHM/KDAsJGZiNWYwMGM0YzNjMjNmNTAkdmFyJF9pbmRleDUuZGVmYXVsdCkodC5tb250aHMpOjAsaT10LndlZWtzPygwLCRmYjVmMDBjNGMzYzIzZjUwJHZhciRfaW5kZXg1LmRlZmF1bHQpKHQud2Vla3MpOjAsYT10LmRheXM/KDAsJGZiNWYwMGM0YzNjMjNmNTAkdmFyJF9pbmRleDUuZGVmYXVsdCkodC5kYXlzKTowLG89dC5ob3Vycz8oMCwkZmI1ZjAwYzRjM2MyM2Y1MCR2YXIkX2luZGV4NS5kZWZhdWx0KSh0LmhvdXJzKTowLHM9dC5taW51dGVzPygwLCRmYjVmMDBjNGMzYzIzZjUwJHZhciRfaW5kZXg1LmRlZmF1bHQpKHQubWludXRlcyk6MCxsPXQuc2Vjb25kcz8oMCwkZmI1ZjAwYzRjM2MyM2Y1MCR2YXIkX2luZGV4NS5kZWZhdWx0KSh0LnNlY29uZHMpOjAsdT0oMCwkZmI1ZjAwYzRjM2MyM2Y1MCR2YXIkX2luZGV4My5kZWZhdWx0KShlKSxjPW58fHI/KDAsJGZiNWYwMGM0YzNjMjNmNTAkdmFyJF9pbmRleDIuZGVmYXVsdCkodSxuKzEyKnIpOnUscD1hfHxpPygwLCRmYjVmMDBjNGMzYzIzZjUwJHZhciRfaW5kZXguZGVmYXVsdCkoYyxhKzcqaSk6YyxkPTFlMyoobCs2MCoocys2MCpvKSk7cmV0dXJuIG5ldyBEYXRlKHAuZ2V0VGltZSgpK2QpfSRmYjVmMDBjNGMzYzIzZjUwJGV4cG9ydHM9JGZiNWYwMGM0YzNjMjNmNTAkZXhwb3J0cy5kZWZhdWx0O3ZhciAkMDQ4N2U5ODk5NGNjNDhkOCRleHBvcnRzPXt9LCRmM1l3eD1wYXJjZWxSZXF1aXJlKFwiZjNZd3hcIiksJDA0ODdlOTg5OTRjYzQ4ZDgkcmVxdWlyZSRfaW50ZXJvcFJlcXVpcmVEZWZhdWx0PSRmM1l3eC5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSgkMDQ4N2U5ODk5NGNjNDhkOCRleHBvcnRzLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLCQwNDg3ZTk4OTk0Y2M0OGQ4JGV4cG9ydHMuZGVmYXVsdD0kMDQ4N2U5ODk5NGNjNDhkOCR2YXIkc2V0RGF5O3ZhciAkMDQ4N2U5ODk5NGNjNDhkOCR2YXIkX2luZGV4PSQwNDg3ZTk4OTk0Y2M0OGQ4JHJlcXVpcmUkX2ludGVyb3BSZXF1aXJlRGVmYXVsdChwYXJjZWxSZXF1aXJlKFwiZmdxNXlcIikpLCQwNDg3ZTk4OTk0Y2M0OGQ4JHZhciRfaW5kZXgyPSQwNDg3ZTk4OTk0Y2M0OGQ4JHJlcXVpcmUkX2ludGVyb3BSZXF1aXJlRGVmYXVsdChwYXJjZWxSZXF1aXJlKFwiZ2xSd29cIikpLCQwNDg3ZTk4OTk0Y2M0OGQ4JHZhciRfaW5kZXgzPSQwNDg3ZTk4OTk0Y2M0OGQ4JHJlcXVpcmUkX2ludGVyb3BSZXF1aXJlRGVmYXVsdChwYXJjZWxSZXF1aXJlKFwiYTlWUXdcIikpLCQwNDg3ZTk4OTk0Y2M0OGQ4JHZhciRfaW5kZXg0PSQwNDg3ZTk4OTk0Y2M0OGQ4JHJlcXVpcmUkX2ludGVyb3BSZXF1aXJlRGVmYXVsdChwYXJjZWxSZXF1aXJlKFwiYXlSM0dcIikpLCRsbXlPaT1wYXJjZWxSZXF1aXJlKFwibG15T2lcIik7ZnVuY3Rpb24gJDA0ODdlOTg5OTRjYzQ4ZDgkdmFyJHNldERheShlLHQscil7KDAsJDA0ODdlOTg5OTRjYzQ4ZDgkdmFyJF9pbmRleDQuZGVmYXVsdCkoMixhcmd1bWVudHMpO3ZhciBuLGksYSxvLHMsbCx1LGMscD0oMCwkbG15T2kuZ2V0RGVmYXVsdE9wdGlvbnMpKCksZD0oMCwkMDQ4N2U5ODk5NGNjNDhkOCR2YXIkX2luZGV4My5kZWZhdWx0KShudWxsIT09KG49bnVsbCE9PShpPW51bGwhPT0oYT1udWxsIT09KG89bnVsbD09cj92b2lkIDA6ci53ZWVrU3RhcnRzT24pJiZ2b2lkIDAhPT1vP286bnVsbD09cj92b2lkIDA6bnVsbD09PShzPXIubG9jYWxlKXx8dm9pZCAwPT09cz92b2lkIDA6bnVsbD09PShsPXMub3B0aW9ucyl8fHZvaWQgMD09PWw/dm9pZCAwOmwud2Vla1N0YXJ0c09uKSYmdm9pZCAwIT09YT9hOnAud2Vla1N0YXJ0c09uKSYmdm9pZCAwIT09aT9pOm51bGw9PT0odT1wLmxvY2FsZSl8fHZvaWQgMD09PXU/dm9pZCAwOm51bGw9PT0oYz11Lm9wdGlvbnMpfHx2b2lkIDA9PT1jP3ZvaWQgMDpjLndlZWtTdGFydHNPbikmJnZvaWQgMCE9PW4/bjowKTtpZighKGQ+PTAmJmQ8PTYpKXRocm93IFJhbmdlRXJyb3IoXCJ3ZWVrU3RhcnRzT24gbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDYgaW5jbHVzaXZlbHlcIik7dmFyIGg9KDAsJDA0ODdlOTg5OTRjYzQ4ZDgkdmFyJF9pbmRleDIuZGVmYXVsdCkoZSksZj0oMCwkMDQ4N2U5ODk5NGNjNDhkOCR2YXIkX2luZGV4My5kZWZhdWx0KSh0KSxtPWguZ2V0RGF5KCksZz0oZiU3KzcpJTcseT03LWQsXz1mPDB8fGY+Nj9mLShtK3kpJTc6KGcreSklNy0obSt5KSU3O3JldHVybigwLCQwNDg3ZTk4OTk0Y2M0OGQ4JHZhciRfaW5kZXguZGVmYXVsdCkoaCxfKX0kMDQ4N2U5ODk5NGNjNDhkOCRleHBvcnRzPSQwNDg3ZTk4OTk0Y2M0OGQ4JGV4cG9ydHMuZGVmYXVsdDt2YXIgJDY3ZTVmNDEwZjYyOWQ2ODckZXhwb3J0cz17fSwkZjNZd3g9cGFyY2VsUmVxdWlyZShcImYzWXd4XCIpLCQ2N2U1ZjQxMGY2MjlkNjg3JHJlcXVpcmUkX2ludGVyb3BSZXF1aXJlRGVmYXVsdD0kZjNZd3guZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoJDY3ZTVmNDEwZjYyOWQ2ODckZXhwb3J0cyxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSwkNjdlNWY0MTBmNjI5ZDY4NyRleHBvcnRzLmRlZmF1bHQ9JDY3ZTVmNDEwZjYyOWQ2ODckdmFyJGlzU2FtZVdlZWs7dmFyICQ2N2U1ZjQxMGY2MjlkNjg3JHZhciRfaW5kZXg9JDY3ZTVmNDEwZjYyOWQ2ODckcmVxdWlyZSRfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHBhcmNlbFJlcXVpcmUoXCJoTHo2UlwiKSksJDY3ZTVmNDEwZjYyOWQ2ODckdmFyJF9pbmRleDI9JDY3ZTVmNDEwZjYyOWQ2ODckcmVxdWlyZSRfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHBhcmNlbFJlcXVpcmUoXCJheVIzR1wiKSk7ZnVuY3Rpb24gJDY3ZTVmNDEwZjYyOWQ2ODckdmFyJGlzU2FtZVdlZWsoZSx0LHIpeygwLCQ2N2U1ZjQxMGY2MjlkNjg3JHZhciRfaW5kZXgyLmRlZmF1bHQpKDIsYXJndW1lbnRzKTt2YXIgbj0oMCwkNjdlNWY0MTBmNjI5ZDY4NyR2YXIkX2luZGV4LmRlZmF1bHQpKGUsciksaT0oMCwkNjdlNWY0MTBmNjI5ZDY4NyR2YXIkX2luZGV4LmRlZmF1bHQpKHQscik7cmV0dXJuIG4uZ2V0VGltZSgpPT09aS5nZXRUaW1lKCl9ZnVuY3Rpb24gJGMzNWZlYjZjZWM2NDgzZTckZXhwb3J0JGZiOWYwNDlmOWZlZTQ3MGMoZSx0KXtyZXR1cm4gZS5mb3JFYWNoKGU9Pnt0LmZvckVhY2godD0+e2xldCByPWUuZmllbGRzLmZpbmQoZT0+ZS5lbGVtZW50X2lkPT10LmVsZW1lbnRfaWQpO3I/dC5kYXRhX3JhbmdlPyh0LmRhdGVfdHlwZS5pbmNsdWRlcyhcImNhbGVuZGFyXCIpLHIuZmllbGRfdmFsdWU9YCR7JGMzNWZlYjZjZWM2NDgzZTckdmFyJGdldFN0YXJ0RGF0ZSh0LmRhdGVfdHlwZSl9OiR7JGMzNWZlYjZjZWM2NDgzZTckZXhwb3J0JGFhMzUwYjk2ZDkxY2Q5NCh0LmRhdGVfdHlwZSl9YCk6ci5maWVsZF92YWx1ZT0kYzM1ZmViNmNlYzY0ODNlNyRleHBvcnQkYWEzNTBiOTZkOTFjZDk0KHQuZGF0ZV90eXBlKTplLmZpZWxkcy5wdXNoKHtmaWVsZF9pZDp0LmVsZW1lbnRfaWQsZWxlbWVudF9pZDp0LmVsZW1lbnRfaWQsZmllbGRfdmFsdWU6JGMzNWZlYjZjZWM2NDgzZTckZXhwb3J0JGFhMzUwYjk2ZDkxY2Q5NCh0LmRhdGVfdHlwZSl9KX0pfSksZX1mdW5jdGlvbiAkYzM1ZmViNmNlYzY0ODNlNyR2YXIkZ2V0U3RhcnREYXRlKGUpe2xldCB0PW5ldyBEYXRlO2Z1bmN0aW9uIHIodCl7bGV0IHI7dmFyIG49dC5nZXREYXkoKTtlLmluY2x1ZGVzKFwid2Vla19jdXJyZW50LGN1cnJlbnRcIikmJihyPTApLGUuaW5jbHVkZXMoXCJ3ZWVrX25leHQsZnV0dXJlXCIpJiYocj03KSxlLmluY2x1ZGVzKFwid2Vla19wYXN0LHBhc3RcIikmJihyPS03KTtsZXQgaT10LmdldERhdGUoKS1uK3IrKDA9PW4/LTY6MSk7cmV0dXJuIG5ldyBEYXRlKHQuc2V0RGF0ZShpKSl9ZnVuY3Rpb24gbih0KXtsZXQgcixuO2xldCBpPU1hdGguZmxvb3IodC5nZXRNb250aCgpLzMpLGE9dC5nZXRGdWxsWWVhcigpO3JldHVybiBlLmluY2x1ZGVzKFwicXVhcnRlcl9jdXJyZW50LGN1cnJlbnRcIikmJihyPTAsbj0wKSxlLmluY2x1ZGVzKFwicXVhcnRlcl9uZXh0LGZ1dHVyZVwiKSYmKHI9MyxuPTApLGUuaW5jbHVkZXMoXCJxdWFydGVyX3Bhc3QscGFzdFwiKSYmKHI9LTMsbj0wKSxuZXcgRGF0ZShhLDMqaStyLDErbil9c3dpdGNoKGUpe2Nhc2VcIndlZWtfY3VycmVudCxjdXJyZW50XCI6Y2FzZVwid2Vla19uZXh0LGZ1dHVyZVwiOmNhc2VcIndlZWtfcGFzdCxwYXN0XCI6cmV0dXJuIHIobmV3IERhdGUpLmdldFRpbWUoKTtjYXNlXCJtb250aF9jdXJyZW50LGN1cnJlbnRcIjpyZXR1cm4gbmV3IERhdGUodC5nZXRGdWxsWWVhcigpLHQuZ2V0TW9udGgoKSwxKS5nZXRUaW1lKCk7Y2FzZVwicXVhcnRlcl9jdXJyZW50LGN1cnJlbnRcIjpjYXNlXCJxdWFydGVyX25leHQsZnV0dXJlXCI6Y2FzZVwicXVhcnRlcl9wYXN0LHBhc3RcIjpyZXR1cm4gbihuZXcgRGF0ZSkuZ2V0VGltZSgpO2Nhc2VcInllYXJfY3VycmVudCxjdXJyZW50XCI6cmV0dXJuICRwYXJjZWwkaW50ZXJvcERlZmF1bHQoJGZiNWYwMGM0YzNjMjNmNTAkZXhwb3J0cykobmV3IERhdGUodC5nZXRGdWxsWWVhcigpLDAsMSkse3llYXJzOjB9KS5nZXRUaW1lKCk7Y2FzZVwibW9udGhfbmV4dCxmdXR1cmVcIjpyZXR1cm4gbmV3IERhdGUodC5nZXRGdWxsWWVhcigpLHQuZ2V0TW9udGgoKSsxLDEpLmdldFRpbWUoKTtjYXNlXCJ5ZWFyX25leHQsZnV0dXJlXCI6Y2FzZVwidG9kYXlfY3VycmVudCxjdXJyZW50XCI6Y2FzZVwiN19kYXlzX2Z1dHVyZSxmdXR1cmVcIjpjYXNlXCIxMF9kYXlzX2Z1dHVyZSxmdXR1cmVcIjpjYXNlXCIxNF9kYXlzX2Z1dHVyZSxmdXR1cmVcIjpjYXNlXCIzMF9kYXlzX2Z1dHVyZSxmdXR1cmVcIjpyZXR1cm4gJHBhcmNlbCRpbnRlcm9wRGVmYXVsdCgkZmI1ZjAwYzRjM2MyM2Y1MCRleHBvcnRzKSh0LHtkYXlzOjB9KS5nZXRUaW1lKCk7Y2FzZVwibW9udGhfcGFzdCxwYXN0XCI6cmV0dXJuIG5ldyBEYXRlKHQuZ2V0RnVsbFllYXIoKSx0LmdldE1vbnRoKCktMSwxKS5nZXRUaW1lKCk7Y2FzZVwieWVhcl9wYXN0LHBhc3RcIjpyZXR1cm4gJHBhcmNlbCRpbnRlcm9wRGVmYXVsdCgkZmI1ZjAwYzRjM2MyM2Y1MCRleHBvcnRzKSh0LHt5ZWFyczotMX0pLmdldFRpbWUoKTtjYXNlXCJ5ZWFyX3Bhc3QscGFzdCxjYWxlbmRhclwiOnJldHVybiAkcGFyY2VsJGludGVyb3BEZWZhdWx0KCRmYjVmMDBjNGMzYzIzZjUwJGV4cG9ydHMpKG5ldyBEYXRlKHQuZ2V0RnVsbFllYXIoKSwwLDEpLHt5ZWFyczotMX0pLmdldFRpbWUoKTtjYXNlXCJ5ZWFyX2Z1dHVyZSxmdXR1cmUsY2FsZW5kYXJcIjpyZXR1cm4gJHBhcmNlbCRpbnRlcm9wRGVmYXVsdCgkZmI1ZjAwYzRjM2MyM2Y1MCRleHBvcnRzKShuZXcgRGF0ZSh0LmdldEZ1bGxZZWFyKCkrMSwwLDEpLHt5ZWFyczowfSkuZ2V0VGltZSgpO2Nhc2VcInRvbW9ycm93LGZ1dHVyZVwiOnJldHVybiAkcGFyY2VsJGludGVyb3BEZWZhdWx0KCRmYjVmMDBjNGMzYzIzZjUwJGV4cG9ydHMpKHQse2RheXM6MX0pLmdldFRpbWUoKTtjYXNlXCJ5ZXN0ZXJkYXkscGFzdFwiOnJldHVybiAkcGFyY2VsJGludGVyb3BEZWZhdWx0KCRmYjVmMDBjNGMzYzIzZjUwJGV4cG9ydHMpKHQse2RheXM6LTF9KS5nZXRUaW1lKCk7Y2FzZVwiN19kYXlzX3Bhc3QscGFzdFwiOnJldHVybiAkcGFyY2VsJGludGVyb3BEZWZhdWx0KCRmYjVmMDBjNGMzYzIzZjUwJGV4cG9ydHMpKHQse2RheXM6LTd9KS5nZXRUaW1lKCk7Y2FzZVwiMTBfZGF5c19wYXN0LHBhc3RcIjpyZXR1cm4gJHBhcmNlbCRpbnRlcm9wRGVmYXVsdCgkZmI1ZjAwYzRjM2MyM2Y1MCRleHBvcnRzKSh0LHtkYXlzOi0xMH0pLmdldFRpbWUoKTtjYXNlXCIxNF9kYXlzX3Bhc3QscGFzdFwiOnJldHVybiAkcGFyY2VsJGludGVyb3BEZWZhdWx0KCRmYjVmMDBjNGMzYzIzZjUwJGV4cG9ydHMpKHQse2RheXM6LTE0fSkuZ2V0VGltZSgpO2Nhc2VcIjMwX2RheXNfcGFzdCxwYXN0XCI6cmV0dXJuICRwYXJjZWwkaW50ZXJvcERlZmF1bHQoJGZiNWYwMGM0YzNjMjNmNTAkZXhwb3J0cykodCx7ZGF5czotMzB9KS5nZXRUaW1lKCl9fWZ1bmN0aW9uICRjMzVmZWI2Y2VjNjQ4M2U3JGV4cG9ydCRhYTM1MGI5NmQ5MWNkOTQoZSl7dmFyIHQ9bmV3IERhdGU7ZnVuY3Rpb24gcihlKXt2YXIgdD0oZT1uZXcgRGF0ZShlKSkuZ2V0RGF5KCkscj1lLmdldERhdGUoKS10KzYrKDA9PXQ/NjoxKTtyZXR1cm4gbmV3IERhdGUoZS5zZXREYXRlKHIpKX1mdW5jdGlvbiBuKGUpe3ZhciB0PShlPW5ldyBEYXRlKGUpKS5nZXREYXkoKSxyPWUuZ2V0RGF0ZSgpLXQrMTMrKDA9PXQ/LTY6MSk7cmV0dXJuIG5ldyBEYXRlKGUuc2V0RGF0ZShyKSl9ZnVuY3Rpb24gaShlKXt2YXIgdD0oZT1uZXcgRGF0ZShlKSkuZ2V0RGF5KCkscj1lLmdldERhdGUoKS10LTErKDA9PXQ/LTY6MSk7cmV0dXJuIG5ldyBEYXRlKGUuc2V0RGF0ZShyKSl9bGV0IGE9TWF0aC5mbG9vcih0LmdldE1vbnRoKCkvMyksbz10LmdldEZ1bGxZZWFyKCk7c3dpdGNoKGUpe2Nhc2VcIm5leHRfZGF5XCI6Y2FzZVwidG9tb3Jyb3csZnV0dXJlXCI6cmV0dXJuICRwYXJjZWwkaW50ZXJvcERlZmF1bHQoJGZiNWYwMGM0YzNjMjNmNTAkZXhwb3J0cykodCx7ZGF5czoxfSkuZ2V0VGltZSgpO2Nhc2VcInR3b19kYXlzX2FmdGVyXCI6cmV0dXJuICRwYXJjZWwkaW50ZXJvcERlZmF1bHQoJGZiNWYwMGM0YzNjMjNmNTAkZXhwb3J0cykodCx7ZGF5czoyfSkuZ2V0VGltZSgpO2Nhc2VcInRocmVlX2RheXNfYWZ0ZXJcIjpyZXR1cm4gJHBhcmNlbCRpbnRlcm9wRGVmYXVsdCgkZmI1ZjAwYzRjM2MyM2Y1MCRleHBvcnRzKSh0LHtkYXlzOjN9KS5nZXRUaW1lKCk7Y2FzZVwiZm91cl9kYXlzX2FmdGVyXCI6cmV0dXJuICRwYXJjZWwkaW50ZXJvcERlZmF1bHQoJGZiNWYwMGM0YzNjMjNmNTAkZXhwb3J0cykodCx7ZGF5czo0fSkuZ2V0VGltZSgpO2Nhc2VcIm5leHRfd2Vla1wiOnJldHVybiAkcGFyY2VsJGludGVyb3BEZWZhdWx0KCRmYjVmMDBjNGMzYzIzZjUwJGV4cG9ydHMpKHQse3dlZWtzOjF9KS5nZXRUaW1lKCk7Y2FzZVwidHdvX3dlZWtzX2FmdGVyXCI6cmV0dXJuICRwYXJjZWwkaW50ZXJvcERlZmF1bHQoJGZiNWYwMGM0YzNjMjNmNTAkZXhwb3J0cykodCx7d2Vla3M6Mn0pLmdldFRpbWUoKTtjYXNlXCJ0aHJlZV93ZWVrc19hZnRlclwiOnJldHVybiAkcGFyY2VsJGludGVyb3BEZWZhdWx0KCRmYjVmMDBjNGMzYzIzZjUwJGV4cG9ydHMpKHQse3dlZWtzOjN9KS5nZXRUaW1lKCk7Y2FzZVwidGhpc19zdW5kYXlcIjpyZXR1cm4gJHBhcmNlbCRpbnRlcm9wRGVmYXVsdCgkMDQ4N2U5ODk5NGNjNDhkOCRleHBvcnRzKSh0LDAse3dlZWtTdGFydHNPbjoxfSk7Y2FzZVwidGhpc19tb25kYXlcIjpyZXR1cm4gJHBhcmNlbCRpbnRlcm9wRGVmYXVsdCgkMDQ4N2U5ODk5NGNjNDhkOCRleHBvcnRzKSh0LDEse3dlZWtTdGFydHNPbjoxfSk7Y2FzZVwidGhpc190dWVzZGF5XCI6cmV0dXJuICRwYXJjZWwkaW50ZXJvcERlZmF1bHQoJDA0ODdlOTg5OTRjYzQ4ZDgkZXhwb3J0cykodCwyLHt3ZWVrU3RhcnRzT246MX0pO2Nhc2VcInRoaXNfd2VkbmVzZGF5XCI6cmV0dXJuICRwYXJjZWwkaW50ZXJvcERlZmF1bHQoJDA0ODdlOTg5OTRjYzQ4ZDgkZXhwb3J0cykodCwzLHt3ZWVrU3RhcnRzT246MX0pO2Nhc2VcInRoaXNfdGh1cnNkYXlcIjpyZXR1cm4gJHBhcmNlbCRpbnRlcm9wRGVmYXVsdCgkMDQ4N2U5ODk5NGNjNDhkOCRleHBvcnRzKSh0LDQse3dlZWtTdGFydHNPbjoxfSk7Y2FzZVwidGhpc19mcmlkYXlcIjpyZXR1cm4gJHBhcmNlbCRpbnRlcm9wRGVmYXVsdCgkMDQ4N2U5ODk5NGNjNDhkOCRleHBvcnRzKSh0LDUse3dlZWtTdGFydHNPbjoxfSk7Y2FzZVwidGhpc19zYXR1cmRheVwiOnJldHVybiAkcGFyY2VsJGludGVyb3BEZWZhdWx0KCQwNDg3ZTk4OTk0Y2M0OGQ4JGV4cG9ydHMpKHQsNix7d2Vla1N0YXJ0c09uOjF9KTtjYXNlXCJ0b2RheV9jdXJyZW50LGN1cnJlbnRcIjpjYXNlXCI3X2RheXNfcGFzdCxwYXN0XCI6Y2FzZVwiMTBfZGF5c19wYXN0LHBhc3RcIjpjYXNlXCIxNF9kYXlzX3Bhc3QscGFzdFwiOmNhc2VcIjMwX2RheXNfcGFzdCxwYXN0XCI6Y2FzZVwieWVhcl9wYXN0LHBhc3RcIjpyZXR1cm4gJHBhcmNlbCRpbnRlcm9wRGVmYXVsdCgkZmI1ZjAwYzRjM2MyM2Y1MCRleHBvcnRzKSh0LHtkYXlzOjB9KS5nZXRUaW1lKCk7Y2FzZVwiN19kYXlzX2Z1dHVyZSxmdXR1cmVcIjpyZXR1cm4gJHBhcmNlbCRpbnRlcm9wRGVmYXVsdCgkZmI1ZjAwYzRjM2MyM2Y1MCRleHBvcnRzKSh0LHtkYXlzOjd9KS5nZXRUaW1lKCk7Y2FzZVwiMTBfZGF5c19mdXR1cmUsZnV0dXJlXCI6cmV0dXJuICRwYXJjZWwkaW50ZXJvcERlZmF1bHQoJGZiNWYwMGM0YzNjMjNmNTAkZXhwb3J0cykodCx7ZGF5czoxMH0pLmdldFRpbWUoKTtjYXNlXCIxNF9kYXlzX2Z1dHVyZSxmdXR1cmVcIjpyZXR1cm4gJHBhcmNlbCRpbnRlcm9wRGVmYXVsdCgkZmI1ZjAwYzRjM2MyM2Y1MCRleHBvcnRzKSh0LHtkYXlzOjE0fSkuZ2V0VGltZSgpO2Nhc2VcIjMwX2RheXNfZnV0dXJlLGZ1dHVyZVwiOnJldHVybiAkcGFyY2VsJGludGVyb3BEZWZhdWx0KCRmYjVmMDBjNGMzYzIzZjUwJGV4cG9ydHMpKHQse2RheXM6MzB9KS5nZXRUaW1lKCk7Y2FzZVwieWVzdGVyZGF5LHBhc3RcIjpyZXR1cm4gJHBhcmNlbCRpbnRlcm9wRGVmYXVsdCgkZmI1ZjAwYzRjM2MyM2Y1MCRleHBvcnRzKSh0LHtkYXlzOi0xfSkuZ2V0VGltZSgpO2Nhc2VcInllYXJfZnV0dXJlLGZ1dHVyZSxjYWxlbmRhclwiOnJldHVybiAkcGFyY2VsJGludGVyb3BEZWZhdWx0KCRmYjVmMDBjNGMzYzIzZjUwJGV4cG9ydHMpKG5ldyBEYXRlKHQuZ2V0RnVsbFllYXIoKSsxLDAsMCkse3llYXJzOjF9KS5nZXRUaW1lKCk7Y2FzZVwieWVhcl9wYXN0LHBhc3QsY2FsZW5kYXJcIjpyZXR1cm4gJHBhcmNlbCRpbnRlcm9wRGVmYXVsdCgkZmI1ZjAwYzRjM2MyM2Y1MCRleHBvcnRzKShuZXcgRGF0ZSh0LmdldEZ1bGxZZWFyKCksMCwwKSx7eWVhcnM6MH0pLmdldFRpbWUoKTtjYXNlXCJ3ZWVrX2N1cnJlbnQsY3VycmVudFwiOnJldHVybiByKG5ldyBEYXRlKS5nZXRUaW1lKCk7Y2FzZVwibW9udGhfY3VycmVudCxjdXJyZW50XCI6cmV0dXJuIG5ldyBEYXRlKHQuZ2V0RnVsbFllYXIoKSx0LmdldE1vbnRoKCkrMSwwKS5nZXRUaW1lKCk7Y2FzZVwicXVhcnRlcl9jdXJyZW50LGN1cnJlbnRcIjpyZXR1cm4gbmV3IERhdGUobywoYSsxKSozLDApLmdldFRpbWUoKTtjYXNlXCJ5ZWFyX2N1cnJlbnQsY3VycmVudFwiOnJldHVybiAkcGFyY2VsJGludGVyb3BEZWZhdWx0KCRmYjVmMDBjNGMzYzIzZjUwJGV4cG9ydHMpKG5ldyBEYXRlKHQuZ2V0RnVsbFllYXIoKSsxLDAsMCkse3llYXJzOjB9KS5nZXRUaW1lKCk7Y2FzZVwid2Vla19uZXh0LGZ1dHVyZVwiOnJldHVybiBuKG5ldyBEYXRlKS5nZXRUaW1lKCk7Y2FzZVwibW9udGhfbmV4dCxmdXR1cmVcIjpyZXR1cm4gbmV3IERhdGUodC5nZXRGdWxsWWVhcigpLHQuZ2V0TW9udGgoKSsyLDApLmdldFRpbWUoKTtjYXNlXCJxdWFydGVyX25leHQsZnV0dXJlXCI6cmV0dXJuIG5ldyBEYXRlKG8sKGErMSkqMyszLDApLmdldFRpbWUoKTtjYXNlXCJ5ZWFyX25leHQsZnV0dXJlXCI6cmV0dXJuICRwYXJjZWwkaW50ZXJvcERlZmF1bHQoJGZiNWYwMGM0YzNjMjNmNTAkZXhwb3J0cykodCx7eWVhcnM6MX0pLmdldFRpbWUoKTtjYXNlXCJ3ZWVrX3Bhc3QscGFzdFwiOnJldHVybiBpKG5ldyBEYXRlKS5nZXRUaW1lKCk7Y2FzZVwibW9udGhfcGFzdCxwYXN0XCI6cmV0dXJuIG5ldyBEYXRlKHQuZ2V0RnVsbFllYXIoKSx0LmdldE1vbnRoKCksMCwwKS5nZXRUaW1lKCk7Y2FzZVwicXVhcnRlcl9wYXN0LHBhc3RcIjpyZXR1cm4gbmV3IERhdGUobywoYSsxKSozLTMsMCkuZ2V0VGltZSgpO2RlZmF1bHQ6cmV0dXJuIHQuZ2V0VGltZSgpfX1mdW5jdGlvbiAkYzM1ZmViNmNlYzY0ODNlNyRleHBvcnQkNmY3YWI1ODFmM2UwMDNmKGUsdCl7ZT1uZXcgRGF0ZShlKTtsZXQgcj1uZXcgRGF0ZTtzd2l0Y2godCl7Y2FzZVwiZGF5XCI6aWYoZS5nZXREYXRlKCkrXCIuXCIrZS5nZXRNb250aCgpPT1yLmdldERhdGUoKStcIi5cIityLmdldE1vbnRoKCkpcmV0dXJuITA7cmV0dXJuITE7Y2FzZVwid2Vla1wiOmxldCBuPW5ldyBEYXRlKG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSxlLmdldE1vbnRoKCksZS5nZXREYXRlKCkpO3JldHVybiAkcGFyY2VsJGludGVyb3BEZWZhdWx0KCQ2N2U1ZjQxMGY2MjlkNjg3JGV4cG9ydHMpKG4scik7Y2FzZVwibW9udGhcIjppZihlLmdldE1vbnRoKCk9PT1yLmdldE1vbnRoKCkpcmV0dXJuITA7cmV0dXJuITE7ZGVmYXVsdDpyZXR1cm4hMH19ZnVuY3Rpb24gJDk4NTY5YjhhZDEwMzg1NDIkZXhwb3J0JDIzMjFhZWExMzhiNDQ3ODAoZSx0LHIpe3JldHVybiAkOTg1NjliOGFkMTAzODU0MiR2YXIkZGVlcG1lcmdlKGUsdCxyKX1mdW5jdGlvbiAkOTg1NjliOGFkMTAzODU0MiR2YXIkaXNNZXJnZWFibGVPYmplY3QoZSl7cmV0dXJuIGUmJlwib2JqZWN0XCI9PXR5cGVvZiBlJiZcIltvYmplY3QgUmVnRXhwXVwiIT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpJiZcIltvYmplY3QgRGF0ZV1cIiE9PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKX1mdW5jdGlvbiAkOTg1NjliOGFkMTAzODU0MiR2YXIkZW1wdHlUYXJnZXQoZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/W106e319ZnVuY3Rpb24gJDk4NTY5YjhhZDEwMzg1NDIkdmFyJGNsb25lSWZOZWNlc3NhcnkoZSx0KXtyZXR1cm4gdCYmITA9PT10LmNsb25lJiYkOTg1NjliOGFkMTAzODU0MiR2YXIkaXNNZXJnZWFibGVPYmplY3QoZSk/JDk4NTY5YjhhZDEwMzg1NDIkdmFyJGRlZXBtZXJnZSgkOTg1NjliOGFkMTAzODU0MiR2YXIkZW1wdHlUYXJnZXQoZSksZSx0KTplfWZ1bmN0aW9uICQ5ODU2OWI4YWQxMDM4NTQyJHZhciRkZWZhdWx0QXJyYXlNZXJnZShlLHQscil7dmFyIG49ZS5zbGljZSgpO3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24odCxpKXt2b2lkIDA9PT1uW2ldP25baV09JDk4NTY5YjhhZDEwMzg1NDIkdmFyJGNsb25lSWZOZWNlc3NhcnkodCxyKTokOTg1NjliOGFkMTAzODU0MiR2YXIkaXNNZXJnZWFibGVPYmplY3QodCk/bltpXT0kOTg1NjliOGFkMTAzODU0MiR2YXIkZGVlcG1lcmdlKGVbaV0sdCxyKTotMT09PWUuaW5kZXhPZih0KSYmbi5wdXNoKCQ5ODU2OWI4YWQxMDM4NTQyJHZhciRjbG9uZUlmTmVjZXNzYXJ5KHQscikpfSksbn1mdW5jdGlvbiAkOTg1NjliOGFkMTAzODU0MiR2YXIkbWVyZ2VPYmplY3QoZSx0LHIpe3ZhciBuPXt9O3JldHVybiAkOTg1NjliOGFkMTAzODU0MiR2YXIkaXNNZXJnZWFibGVPYmplY3QoZSkmJk9iamVjdC5rZXlzKGUpLmZvckVhY2goZnVuY3Rpb24odCl7blt0XT0kOTg1NjliOGFkMTAzODU0MiR2YXIkY2xvbmVJZk5lY2Vzc2FyeShlW3RdLHIpfSksT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihpKXskOTg1NjliOGFkMTAzODU0MiR2YXIkaXNNZXJnZWFibGVPYmplY3QodFtpXSkmJmVbaV0/bltpXT0kOTg1NjliOGFkMTAzODU0MiR2YXIkZGVlcG1lcmdlKGVbaV0sdFtpXSxyKTpuW2ldPSQ5ODU2OWI4YWQxMDM4NTQyJHZhciRjbG9uZUlmTmVjZXNzYXJ5KHRbaV0scil9KSxufWZ1bmN0aW9uICQ5ODU2OWI4YWQxMDM4NTQyJHZhciRkZWVwbWVyZ2UoZSx0LHIpe2U9dm9pZCAwIT09ZT9lOnt9O3ZhciBuPUFycmF5LmlzQXJyYXkodD12b2lkIDAhPT10P3Q6e30pLGk9KHJ8fHthcnJheU1lcmdlOiQ5ODU2OWI4YWQxMDM4NTQyJHZhciRkZWZhdWx0QXJyYXlNZXJnZX0pLmFycmF5TWVyZ2V8fCQ5ODU2OWI4YWQxMDM4NTQyJHZhciRkZWZhdWx0QXJyYXlNZXJnZTtyZXR1cm4gbj9BcnJheS5pc0FycmF5KGUpP2koZSx0LHIpOiQ5ODU2OWI4YWQxMDM4NTQyJHZhciRjbG9uZUlmTmVjZXNzYXJ5KHQscik6JDk4NTY5YjhhZDEwMzg1NDIkdmFyJG1lcmdlT2JqZWN0KGUsdCxyKX1mdW5jdGlvbiAkODgzMWM5Y2UwMTc2N2YwOCRleHBvcnQkOTViZjg1MTdmODI1ZGNjMChlKXtsZXQgdD17fTtyZXR1cm4gZS5mb3JFYWNoKGU9PntlLml0ZW1zX2xpc3QuZm9yRWFjaChlPT57bGV0IHI9dFtlLml0ZW1faWRdO3JldHVybiByPyhyLnRyYXNoPWUudHJhc2gsZS5maWVsZHMuZm9yRWFjaChlPT57bGV0IHQ9ITA7ci5maWVsZHM9ci5maWVsZHMubWFwKHI9Pk51bWJlcihyLmZpZWxkX2lkKT09PU51bWJlcihlLmZpZWxkX2lkKSYmKHQ9ITEsci5maWVsZF92YWx1ZSE9ZS5maWVsZF92YWx1ZSk/ey4uLmUsaGlzdG9yeTplLmhpc3RvcnkuY29uY2F0KHIuaGlzdG9yeSl9OnIpLHQmJnIuZmllbGRzLnB1c2goZSl9KSk6dFtlLml0ZW1faWRdPWV9KX0pLE9iamVjdC52YWx1ZXModCl9ZnVuY3Rpb24gJDg4MzFjOWNlMDE3NjdmMDgkZXhwb3J0JDUzZjE3NTU0MDQyMzFiZTcoKXtyZXR1cm5gZnVuY3Rpb24gbWVyZ2VDaHVua3MoY2h1bmtzKSB7XG4gICAgY29uc3QgcmVzdWx0ID0ge307XG4gIFxuICAgIGNodW5rcy5mb3JFYWNoKChjaHVuaykgPT4ge1xuICAgICAgY2h1bmsuaXRlbXNfbGlzdC5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIGNvbnN0IGRzdEl0ZW0gPSByZXN1bHRbaXRlbS5pdGVtX2lkXTtcbiAgICAgICAgaWYgKGRzdEl0ZW0pIHtcbiAgICAgICAgICBkc3RJdGVtLnRyYXNoID0gaXRlbS50cmFzaDtcbiAgICAgICAgICByZXR1cm4gaXRlbS5maWVsZHMuZm9yRWFjaCgoc3JjRmllbGQpID0+IHtcbiAgICAgICAgICAgIGxldCBpc0ZpZWxkTm9uRXhpc3QgPSB0cnVlO1xuICAgICAgICAgICAgZHN0SXRlbS5maWVsZHMgPSBkc3RJdGVtLmZpZWxkcy5tYXAoKGRzdEZpZWxkKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChOdW1iZXIoZHN0RmllbGQuZmllbGRfaWQpID09PSBOdW1iZXIoc3JjRmllbGQuZmllbGRfaWQpKSB7XG4gICAgICAgICAgICAgICAgaXNGaWVsZE5vbkV4aXN0ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaWYgKGRzdEZpZWxkLmZpZWxkX3ZhbHVlICE9IHNyY0ZpZWxkLmZpZWxkX3ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi5zcmNGaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgaGlzdG9yeTogc3JjRmllbGQuaGlzdG9yeS5jb25jYXQoZHN0RmllbGQuaGlzdG9yeSksXG4gICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gZHN0RmllbGQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIGRzdEZpZWxkO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoaXNGaWVsZE5vbkV4aXN0KSBkc3RJdGVtLmZpZWxkcy5wdXNoKHNyY0ZpZWxkKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKHJlc3VsdFtpdGVtLml0ZW1faWRdID0gaXRlbSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhyZXN1bHQpO1xuICB9XG5cblxuICBzZWxmLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsgICAgICBcbiAgICBjb25zdCBtZXJnZWRDaHVua3MgPSBtZXJnZUNodW5rcyhlLmRhdGEpO1xuICAgIHNlbGYucG9zdE1lc3NhZ2UobWVyZ2VkQ2h1bmtzKTtcbiAgfWB9ZnVuY3Rpb24gJDIyNzdiNGE3M2FkMzIxY2EkZXhwb3J0JDk1YmY4NTE3ZjgyNWRjYzAoZSl7cmV0dXJuICQ4ODMxYzljZTAxNzY3ZjA4JGV4cG9ydCQ5NWJmODUxN2Y4MjVkY2MwKGUpfWZ1bmN0aW9uICQzNTIzMjc0Y2ExYWQ4M2I0JGV4cG9ydCQyMWM3ZWExMzVjNTIxYzI4KGUsdCxyLG49XCJjaGlsZHJlblwiLGk9bnVsbCl7bGV0IGE9e30sbz1bXTtlLmZvckVhY2goZT0+e2FbZVt0XV09ey4uLmUsW25dOltdfX0pLGUuZm9yRWFjaChlPT57bGV0IGk9ZVtyXTtpJiZhW2ldP2FbaV1bbl0ucHVzaChhW2VbdF1dKTpvLnB1c2goYVtlW3RdXSl9KTtsZXQgcz1lPT57ZS5mb3JFYWNoKGU9PntlW25dLmxlbmd0aD4wJiZzKGVbbl0pfSksaSYmZS5zb3J0KChlLHQpPT4oZVtpXT8/MS8wKS0odFtpXT8/MS8wKSl9O3Mobyk7bGV0IGw9ZT0+e2UuZm9yRWFjaChlPT57MD09PWVbbl0ubGVuZ3RoP2RlbGV0ZSBlW25dOmwoZVtuXSl9KX07cmV0dXJuIGwobyksb30kNjdlNWY0MTBmNjI5ZDY4NyRleHBvcnRzPSQ2N2U1ZjQxMGY2MjlkNjg3JGV4cG9ydHMuZGVmYXVsdCwkOTg1NjliOGFkMTAzODU0MiR2YXIkZGVlcG1lcmdlLmFsbD1mdW5jdGlvbihlLHQpe2lmKCFBcnJheS5pc0FycmF5KGUpfHxlLmxlbmd0aDwyKXRocm93IEVycm9yKFwiZmlyc3QgYXJndW1lbnQgc2hvdWxkIGJlIGFuIGFycmF5IHdpdGggYXQgbGVhc3QgdHdvIGVsZW1lbnRzXCIpO3JldHVybiBlLnJlZHVjZShmdW5jdGlvbihlLHIpe3JldHVybiAkOTg1NjliOGFkMTAzODU0MiR2YXIkZGVlcG1lcmdlKGUscix0KX0pfSxnbG9iYWxUaGlzLm9ubWVzc2FnZT1mdW5jdGlvbihlKXtsZXQgdD0kODgzMWM5Y2UwMTc2N2YwOCRleHBvcnQkOTViZjg1MTdmODI1ZGNjMChlLmRhdGEpO3NlbGYucG9zdE1lc3NhZ2UodCl9O2NsYXNzICQ5YzU2NmUyZTEwMzg3NDI5JGV4cG9ydCQyZTJiY2Q4NzM5YWUwMzl7Y29uc3RydWN0b3IoZSl7dGhpcy5ndWRodWI9ZX1tZXJnZUZpZWxkTGlzdHMoZSx0KXtsZXQgcj1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGUpKSxuPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodCkpLGk9bi5tYXAoZT0+ZS5maWVsZF9pZCk7cmV0dXJuIG4ubGVuZ3RoP24ucmVkdWNlKChlLHQpPT57bGV0IHI9bnVsbDtpZihlLmZpbmQoKGUsbik9PnQuZmllbGRfaWQ9PWUuZmllbGRfaWQmJihyPW4sITApKSllW3JdPXRoaXMuZ3VkaHViLnV0aWwubWVyZ2VPYmplY3RzKGVbcl0sdCk7ZWxzZXtsZXQgcj10LmRhdGFfbW9kZWwmJnQuZGF0YV9tb2RlbC5pbnRlcnByZXRhdGlvbiYmdC5kYXRhX21vZGVsLmludGVycHJldGF0aW9uLmZpbmQoZT0+XCJ0YWJsZVwiPT1lLnNyYyl8fHtzZXR0aW5nczp7c2hvd19maWVsZDoxfX07aWYoci5zZXR0aW5ncy5zaG93X2ZpZWxkKXtsZXQgbj10aGlzLmd1ZGh1Yi51dGlsLm1lcmdlT2JqZWN0cyh7c2hvdzoxfSxyKSxpPXRoaXMuZ3VkaHViLnV0aWwubWVyZ2VPYmplY3RzKG4sdCk7ZS5wdXNoKGkpfX1yZXR1cm4gZX0scikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlLnNob3cmJi0xIT1pLmluZGV4T2YoZS5maWVsZF9pZCl9KTpbXX1jcmVhdGVGaWVsZHNMaXN0VG9WaWV3KGUsdCl7bGV0IHI9dGhpcztyZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgbj0+e2xldCBpPWF3YWl0IHRoaXMuZ3VkaHViLmdldEZpZWxkTW9kZWxzKGUpO2lmKDAhPT10Lmxlbmd0aCl7bGV0IGU9W107dC5mb3JFYWNoKChyLG4pPT57bGV0IG89aS5maW5kKGU9PnIuZmllbGRfaWQ9PWUuZmllbGRfaWQpO2lmKG8pe2xldCB0PW8uZGF0YV9tb2RlbC5pbnRlcnByZXRhdGlvbi5maW5kKGU9PlwidGFibGVcIj09ZS5zcmMpO3R8fCh0PXtzZXR0aW5nczp7c2hvd19maWVsZDoxfX0pLGUucHVzaCh7ZmllbGRfaWQ6by5maWVsZF9pZCxzaG93OnIuc2hvdyx3aWR0aDpyLndpZHRoP3Iud2lkdGg6XCIxNTBweFwifSl9bisxPT10Lmxlbmd0aCYmYShlKX0pfWVsc2UgYSh0KTtmdW5jdGlvbiBhKGUpe2xldCB0PTA7aS5mb3JFYWNoKChhLG8pPT57ZS5maW5kKGU9PmEuZmllbGRfaWQ9PWUuZmllbGRfaWQpPyh0PT1pLmxlbmd0aC0xJiZuKGUpLHQrKyk6ci5ndWRodWIuZ2hjb25zdHJ1Y3Rvci5nZXRJbnN0YW5jZShhLmRhdGFfdHlwZSkudGhlbihyPT57aWYocil7bGV0IG89ci5nZXRUZW1wbGF0ZSgpLm1vZGVsLmRhdGFfbW9kZWwuaW50ZXJwcmV0YXRpb24uZmluZChlPT5cInRhYmxlXCI9PWUuc3JjKTtvfHwobz17c2V0dGluZ3M6e3Nob3dfZmllbGQ6MX19KSxlLnB1c2goe2ZpZWxkX2lkOmEuZmllbGRfaWQsc2hvdzpvLnNldHRpbmdzLnNob3dfZmllbGR9KSx0PT1pLmxlbmd0aC0xJiZuKGUpfXQrK30sZnVuY3Rpb24oZSl7dCsrfSl9KX19KX1jcmVhdGVGaWVsZHNMaXN0VG9WaWV3V2l0aERhdGFUeXBlKGUsdCl7cmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIHI9PntsZXQgbj1bXSxpPWF3YWl0IHRoaXMuZ3VkaHViLmdldEZpZWxkTW9kZWxzKGUpLGE9aS5tYXAoZT0+K2UuZmllbGRfaWQpLG89W107bj1pLnJlZHVjZSgoZSx0KT0+KGUuZmluZCgoZSxyKT0+dC5maWVsZF9pZD09ZS5maWVsZF9pZCl8fChlLnB1c2goe2ZpZWxkX2lkOnQuZmllbGRfaWQsZGF0YV90eXBlOnQuZGF0YV90eXBlfSksby5wdXNoKG5ldyBQcm9taXNlKGFzeW5jIHI9PntsZXQgbj0oYXdhaXQgdGhpcy5ndWRodWIuZ2hjb25zdHJ1Y3Rvci5nZXRJbnN0YW5jZSh0LmRhdGFfdHlwZSkpLmdldFRlbXBsYXRlKCkubW9kZWwuZGF0YV9tb2RlbC5pbnRlcnByZXRhdGlvbi5maW5kKGU9PlwidGFibGVcIj09ZS5zcmMpfHx7c2V0dGluZ3M6e3Nob3dfZmllbGQ6MX19O2UuZmluZChlPT5lLmZpZWxkX2lkPT10LmZpZWxkX2lkKS5zaG93PW4uc2V0dGluZ3Muc2hvd19maWVsZCxyKCEwKX0pKSksZSksdCksUHJvbWlzZS5hbGwobykudGhlbigoKT0+e3Iobj1uLmZpbHRlcihlPT4tMSE9YS5pbmRleE9mKGUuZmllbGRfaWQpKSl9KX0pfX1jbGFzcyAkOWFkMTI4YzI4ZWNjOTMyMCRleHBvcnQkMmUyYmNkODczOWFlMDM5e2NvbnN0cnVjdG9yKGUpe3RoaXMuZ3VkaHViPWUsdGhpcy5zZWxlY3RlZEl0ZW1zPXt9fWFzeW5jIHNlbGVjdEl0ZW1zKGUsdCl7aWYoIXRoaXMuc2VsZWN0ZWRJdGVtcy5oYXNPd25Qcm9wZXJ0eShlKSl7dGhpcy5zZWxlY3RlZEl0ZW1zW2VdPXtpdGVtczpbXSxhcHA6W119O2xldCB0PWF3YWl0IHRoaXMuZ3VkaHViLmdldEFwcChlKTt0aGlzLnNlbGVjdGVkSXRlbXNbZV0uYXBwPXR9bGV0IHI9dGhpcy5zZWxlY3RlZEl0ZW1zW2VdLG49ci5pdGVtcy5tYXAoZT0+ZS5pdGVtX2lkKTt0LmZvckVhY2goZT0+ey0xIT1uLmluZGV4T2YoZS5pdGVtX2lkKT9yLml0ZW1zLnNwbGljZShuLmluZGV4T2YoZS5pdGVtX2lkKSwxKTpyLml0ZW1zW3IuaXRlbXMubGVuZ3RoXT1lfSl9Z2V0U2VsZWN0ZWRJdGVtcyhlKXtyZXR1cm4gdGhpcy5zZWxlY3RlZEl0ZW1zW2VdP3RoaXMuc2VsZWN0ZWRJdGVtc1tlXTp7aXRlbXM6W10sYXBwOltdfX1jbGVhclNlbGVjdGVkSXRlbXMoZSl7dGhpcy5zZWxlY3RlZEl0ZW1zW2VdJiYodGhpcy5zZWxlY3RlZEl0ZW1zW2VdLml0ZW1zPVtdKX1pc0l0ZW1TZWxlY3RlZChlLHQpe2xldCByPXRoaXMuZ2V0U2VsZWN0ZWRJdGVtcyhlKTtyZXR1cm4gbnVsbCE9PXImJi0xIT0ocj1yLml0ZW1zLm1hcChlPT5lLml0ZW1faWQpKS5pbmRleE9mKHQpfX1mdW5jdGlvbiAkYmQ1ZmFlYmExMDYxOGI2YSRleHBvcnQkMjU0MTViNjRmMjQ0NGE5OCgpe3JldHVybmBmdW5jdGlvbiBjcmVhdGVMaXN0KGl0ZW1zKSB7XG4gICAgcmV0dXJuIGl0ZW1zLnJlZHVjZShcbiAgICAgIChhY2MsIGl0ZW0pID0+IHtcbiAgICAgICAgYWNjLmxpc3RbaXRlbS5pdGVtX2lkXSA9IGl0ZW07XG4gICAgICAgIGFjYy5pZHMucHVzaChpdGVtLml0ZW1faWQpO1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSxcbiAgICAgIHsgaWRzOiBbXSwgbGlzdDoge30gfVxuICAgICk7XG4gIH07XG4gIGZ1bmN0aW9uIGNvbXBhcmVJdGVtc0xpc3RzKG9sZEl0ZW1zLCBuZXdJdGVtcykge1xuICAgIGNvbnN0IHsgaWRzOiBvbGRJZHMsIGxpc3Q6IG9sZExpc3QgfSA9IGNyZWF0ZUxpc3Qob2xkSXRlbXMpO1xuICAgIGNvbnN0IHsgaWRzOiBuZXdJZHMsIGxpc3Q6IG5ld0xpc3QgfSA9IGNyZWF0ZUxpc3QobmV3SXRlbXMpO1xuXG4gICAgY29uc3QgZGVsZXRlZEl0ZW1zSWRzID0gb2xkSWRzLmZpbHRlcigoaWQpID0+ICFuZXdJZHMuaW5jbHVkZXMoaWQpKTtcbiAgICBjb25zdCByZWNlbnRJdGVtc0lkcyA9IG9sZElkcy5maWx0ZXIoKGlkKSA9PiAhZGVsZXRlZEl0ZW1zSWRzLmluY2x1ZGVzKGlkKSk7XG4gICAgY29uc3QgbmV3SXRlbXNJZHMgPSBuZXdJZHMuZmlsdGVyKChpZCkgPT4gIW9sZElkcy5pbmNsdWRlcyhpZCkpO1xuXG4gICAgY29uc3QgZGlmZl9maWVsZHNfaXRlbXMgPSB7fTtcbiAgICBjb25zdCBkaWZmX2ZpZWxkc19pdGVtc19JZHMgPSBbXTtcbiAgICBcbiAgICByZWNlbnRJdGVtc0lkcy5mb3JFYWNoKChpZCkgPT4ge1xuICAgICAgY29uc3QgbmV3SXRlbSA9IG5ld0xpc3RbaWRdO1xuICAgICAgY29uc3Qgb2xkSXRlbSA9IG9sZExpc3RbaWRdO1xuXG4gICAgICBvbGRJdGVtLmZpZWxkcy5mb3JFYWNoKChmaWVsZDEpID0+IHtcbiAgICAgICAgY29uc3Qgc2FtZUZpZWxkID0gbmV3SXRlbS5maWVsZHMuZmluZChcbiAgICAgICAgICAoZmllbGQyKSA9PiBOdW1iZXIoZmllbGQyLmZpZWxkX2lkKSA9PT0gTnVtYmVyKGZpZWxkMS5maWVsZF9pZClcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoIXNhbWVGaWVsZCkge1xuICAgICAgICAgIGlmICghZGlmZl9maWVsZHNfaXRlbXNbbmV3SXRlbS5pdGVtX2lkXSkge1xuICAgICAgICAgICAgZGlmZl9maWVsZHNfaXRlbXNbbmV3SXRlbS5pdGVtX2lkXSA9IFtdO1xuICAgICAgICAgICAgZGlmZl9maWVsZHNfaXRlbXNfSWRzLnB1c2gobmV3SXRlbS5pdGVtX2lkKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gZGlmZl9maWVsZHNfaXRlbXNbbmV3SXRlbS5pdGVtX2lkXS5wdXNoKGZpZWxkMSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmllbGQxLmZpZWxkX3ZhbHVlICE9IHNhbWVGaWVsZC5maWVsZF92YWx1ZSkge1xuICAgICAgICAgIGlmICghZGlmZl9maWVsZHNfaXRlbXNbbmV3SXRlbS5pdGVtX2lkXSkge1xuICAgICAgICAgICAgZGlmZl9maWVsZHNfaXRlbXNbbmV3SXRlbS5pdGVtX2lkXSA9IFtdO1xuICAgICAgICAgICAgZGlmZl9maWVsZHNfaXRlbXNfSWRzLnB1c2gobmV3SXRlbS5pdGVtX2lkKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGRpZmZfZmllbGRzX2l0ZW1zW25ld0l0ZW0uaXRlbV9pZF0ucHVzaChmaWVsZDEpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICBuZXdJdGVtczogbmV3SXRlbXNJZHMucmVkdWNlKChhY2MsIGlkKSA9PiB7XG4gICAgICAgIGFjYy5wdXNoKG5ld0xpc3RbaWRdKTtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIFtdKSxcbiAgICAgIGRlbGV0ZWRJdGVtczogZGVsZXRlZEl0ZW1zSWRzLnJlZHVjZSgoYWNjLCBpZCkgPT4ge1xuICAgICAgICBhY2MucHVzaChvbGRMaXN0W2lkXSk7XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCBbXSksXG4gICAgICBkaWZmX2ZpZWxkc19pdGVtc19JZHMsXG4gICAgICBkaWZmX2ZpZWxkc19pdGVtcyxcbiAgICAgIGRpZmZfaXRlbXM6IGRpZmZfZmllbGRzX2l0ZW1zX0lkcy5yZWR1Y2UoKGFjYywgaWQpID0+IHtcbiAgICAgICAgYWNjLnB1c2gob2xkTGlzdFtpZF0pO1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwgW10pLFxuICAgIH07XG4gIH1cblxuICBzZWxmLmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIChldmVudCkgPT4ge1xuICAgIGNvbnN0IHsgaXRlbXNfbGlzdDEsIGl0ZW1zX2xpc3QyIH0gPSBldmVudC5kYXRhO1xuXG4gICAgY29uc3QgZGlmZiA9IGNvbXBhcmVJdGVtc0xpc3RzKGl0ZW1zX2xpc3QxLCBpdGVtc19saXN0Mik7XG4gICAgc2VsZi5wb3N0TWVzc2FnZSh7IGRpZmYgfSk7XG4gIH0pO2B9ZnVuY3Rpb24gJDg0MDExMWRkYzVmMjg5NTIkZXhwb3J0JDY5ZjQzNGFjZmJkYjBiMzIoZSx0LHIsbixpKXthc3luYyBmdW5jdGlvbiBhKGUsdCxyKXtsZXQgbj1udWxsO2lmKFwiYXJyYXlcIj09PWUudHlwZSYmKG49TnVtYmVyKGUuaXNfc3RhdGljKT9BcnJheShhd2FpdCBsKGUuY2hpbGRzLHQscikpOmF3YWl0IG8oZSx0LHIpKSxcIm9iamVjdFwiPT09ZS50eXBlJiYobj1OdW1iZXIoZS5jdXJyZW50X2l0ZW0pP2F3YWl0IHMoZSx0KTphd2FpdCBsKGUuY2hpbGRzLHQscikpLFwicHJvcGVydHlcIj09PWUudHlwZSYmKG49YXdhaXQgdShlLHQscikpLFwib2JqZWN0XCI9PXR5cGVvZiBlJiZ2b2lkIDA9PT1lLnR5cGUpe2xldCBuPXt9O2ZvcihsZXQgaSBpbiBlKWlmKGUuaGFzT3duUHJvcGVydHkoaSkpe2xldCBvPWVbaV0scz1hd2FpdCBhKG8sdCxyKTtuW2ldPXNbby5wcm9wZXJ0eV9uYW1lXX1yZXR1cm4gbn1yZXR1cm57W2UucHJvcGVydHlfbmFtZV06bn19YXN5bmMgZnVuY3Rpb24gbyhlLHQsaSl7bGV0IGE9YXdhaXQgci5ndWRodWIuZ2V0QXBwKE51bWJlcihlLmFwcF9pZCkpLG89YXdhaXQgcChlLmZpbHRlcixhLml0ZW1zX2xpc3QsaSx0KTtpZihlLmlzU29ydGFibGUmJmUuZmllbGRfaWRfdG9fc29ydCYmXCJcIiE9PWUuZmllbGRfaWRfdG9fc29ydCl7bGV0IHQ9by5mbGF0TWFwKHQ9PntsZXQgcj10LmZpZWxkcy5maW5kKHQ9PnQuZmllbGRfaWQ9PWUuZmllbGRfaWRfdG9fc29ydCk7cmV0dXJuIHImJlwiXCIhPXIuZmllbGRfdmFsdWU/dDpbXX0pLHI9by5maWx0ZXIoZT0+e2lmKCF0LmluY2x1ZGVzKGUpKXJldHVybiBlfSk7bz1bLi4udD10LnNvcnQoKHQscik9PlwiZGVzY1wiPT1lLnNvcnRUeXBlP3IuZmllbGRzLmZpbmQodD0+dC5maWVsZF9pZD09ZS5maWVsZF9pZF90b19zb3J0KS5maWVsZF92YWx1ZS10LmZpZWxkcy5maW5kKHQ9PnQuZmllbGRfaWQ9PWUuZmllbGRfaWRfdG9fc29ydCkuZmllbGRfdmFsdWU6dC5maWVsZHMuZmluZCh0PT50LmZpZWxkX2lkPT1lLmZpZWxkX2lkX3RvX3NvcnQpLmZpZWxkX3ZhbHVlLXIuZmllbGRzLmZpbmQodD0+dC5maWVsZF9pZD09ZS5maWVsZF9pZF90b19zb3J0KS5maWVsZF92YWx1ZSksLi4ucl19aWYoZS5vZmZzZXQpe2xldCB0O3Q9ZS51c2VfdmFyaWFibGVzX2Zvcl9saW1pdF9hbmRfb2Zmc2V0JiZuP25bZS5vZmZzZXRdOi9eWzAtOV0rJC8udGVzdChlLm9mZnNldCk/ZS5vZmZzZXQ6MCxvPW8uc2xpY2UodCl9aWYoZS5saW1pdCl7bGV0IHQ7MCE9PSh0PWUudXNlX3ZhcmlhYmxlc19mb3JfbGltaXRfYW5kX29mZnNldCYmbj9uW2UubGltaXRdOi9eWzAtOV0rJC8udGVzdChlLmxpbWl0KXx8MCkmJihvPW8uc2xpY2UoMCx0KSl9cmV0dXJuIFByb21pc2UuYWxsKG8ubWFwKGFzeW5jIHQ9PmwoZS5jaGlsZHMsdCxhLmFwcF9pZCkpKX1hc3luYyBmdW5jdGlvbiBzKGUsdCl7bGV0IG49YXdhaXQgci5ndWRodWIuZ2V0QXBwKGUuYXBwX2lkKSxpPW4uaXRlbXNfbGlzdHx8W107cmV0dXJuIGwoZS5jaGlsZHMsdHx8aVswXSxuLmFwcF9pZCl9YXN5bmMgZnVuY3Rpb24gbChlLHQscil7bGV0IG49YXdhaXQgZS5tYXAoYXN5bmMgZT0+YShlLHQscikpO3JldHVybihhd2FpdCBQcm9taXNlLmFsbChuKSkucmVkdWNlKChlLHQpPT4oey4uLmUsLi4udH0pLHt9KX1hc3luYyBmdW5jdGlvbiB1KGUsdCxuKXtzd2l0Y2goZS5wcm9wZXJ0eV90eXBlKXtjYXNlXCJzdGF0aWNcIjpyZXR1cm4gZS5zdGF0aWNfZmllbGRfdmFsdWU7Y2FzZVwidmFyaWFibGVcIjppZihcImFwcF9pZFwiPT09ZS52YXJpYWJsZV90eXBlKXJldHVybiBuO3JldHVybmAke259LiR7dC5pdGVtX2lkfWA7Y2FzZVwiZmllbGRfaWRcIjpyZXR1cm4gZS5maWVsZF9pZDtjYXNlXCJmdW5jdGlvblwiOmlmKFwiZnVuY3Rpb25cIj09dHlwZW9mIGUuZnVuY3Rpb24pcmV0dXJuIGUuZnVuY3Rpb24odCxuLHIuZ3VkaHViLC4uLmUuYXJncyk7e2xldCBpPUZ1bmN0aW9uKFwiaXRlbSwgYXBwSWQsIGd1ZGh1YlwiLFwicmV0dXJuIChhc3luYyBcIitlLmZ1bmN0aW9uK1wiKShpdGVtLCBhcHBJZCwgZ3VkaHViKVwiKTtyZXR1cm4gYXdhaXQgaSh0LG4sci5ndWRodWIpfWRlZmF1bHQ6aWYoIWUuZmllbGRfaWQmJmUubmFtZV9zcGFjZSYmKGUuZmllbGRfaWQ9YXdhaXQgci5ndWRodWIuZ2V0RmllbGRJZEJ5TmFtZVNwYWNlKG4sZS5uYW1lX3NwYWNlKSksTnVtYmVyKGUuaW50ZXJwcmV0YXRpb24pKXJldHVybiBhd2FpdCByLmd1ZGh1Yi5nZXRJbnRlcnByZXRhdGlvbkJ5SWQoTnVtYmVyKG4pLE51bWJlcih0Lml0ZW1faWQpLE51bWJlcihlLmZpZWxkX2lkKSxcInZhbHVlXCIpO3JldHVybiBhd2FpdCByLmd1ZGh1Yi5nZXRGaWVsZFZhbHVlKE51bWJlcihuKSxOdW1iZXIodC5pdGVtX2lkKSxOdW1iZXIoZS5maWVsZF9pZCkpfX1hc3luYyBmdW5jdGlvbiBjKGUsdCxpLGEsbyl7bGV0IHM9YXdhaXQgci5ndWRodWIucHJlZmlsdGVyKEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZSkpLHtlbGVtZW50X2FwcF9pZDp0LGFwcF9pZDppLGl0ZW1faWQ6YSwuLi5ufSk7cmV0dXJuIHIuZ3VkaHViLmZpbHRlcihvLFsuLi5zLC4uLmVdKX1hc3luYyBmdW5jdGlvbiBwKGU9W10sdD1bXSxyPVwiXCIsbj17fSl7cmV0dXJuIGUubGVuZ3RoP2MoZSxyLHIsbi5pdGVtX2lkLHQpOlsuLi50XX1yZXR1cm4gYShlLHQsaSxuKX1jbGFzcyAkNzg1NTU0ZWIxZjJjYzcwNiRleHBvcnQkMmUyYmNkODczOWFlMDM5e2NvbnN0cnVjdG9yKGUpe3RoaXMuZ3VkaHViPWUsdGhpcy5hcHBzQ29ubmVjdGluZ01hcD17YXBwczpbXSxmaWVsZHM6W10saXRlbXM6W10sdmlld3M6W119fWNyZWF0ZUFwcHNGcm9tVGVtcGxhdGUoZSx0LHIsbil7bGV0IGk9dGhpcztyZXR1cm4gbmV3IFByb21pc2UoYT0+e2xldCBvPTEwMC8oNiplLmFwcHMubGVuZ3RoKSxzPTA7aS5jcmVhdGVBcHBzKGUsZT0+e3MrPTEsciYmci5jYWxsKHRoaXMse3BlcmNlbnQ6cypvLHN0YXR1czplfSl9LG4pLnRoZW4oZT0+e2kuY3JlYXRlSXRlbXMoZSx0LGU9PntcInN0cmluZ1wiPT10eXBlb2YgZT8ocys9MSxyJiZyLmNhbGwodGhpcyx7cGVyY2VudDpzKm8sc3RhdHVzOmV9KSk6XCJvYmplY3RcIj09dHlwZW9mIGUmJihyJiZyLmNhbGwodGhpcyx7c3RhdHVzOlwiRG9uZVwiLGFwcHM6ZX0pLGEoKSl9LG4pfSl9KX1jcmVhdGVJdGVtcyhlLHQscixuKXtyZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgaT0+e2xldCBhPXR8fDFlNSxvPXRoaXMscz1bXSxsPVtdLHthY2Nlc3N0b2tlbjp1fT1hd2FpdCBvLmd1ZGh1Yi5yZXEuYXhpb3NSZXF1ZXN0KHttZXRob2Q6XCJQT1NUXCIsdXJsOlwiaHR0cHM6Ly9ndWRodWIuY29tL0d1ZEh1Yl9UZXN0L2F1dGgvbG9naW5cIixmb3JtOnthdXRoX2tleTpcIjNITU90Q2JDME0vMS8xZTR5NFV4by9LaC9hRk40VjVMRzIvLzVpeHg3VFp5aVVmTWI3SUhBQUhDajlQc0xyT1NEclp1dVdrYlg0QklYMjNmNTFIK2VBPT1cIn19KTtlLmZvckVhY2goZT0+e2wucHVzaChuZXcgUHJvbWlzZShhc3luYyB0PT57bGV0IGk7aT1uP2F3YWl0IG8uZ3VkaHViLnJlcS5heGlvc1JlcXVlc3Qoe3VybDpgaHR0cHM6Ly9ndWRodWIuY29tL0d1ZEh1Yl9UZXN0L2FwaS9hcHAvZ2V0P3Rva2VuPSR7dX0mYXBwX2lkPSR7by5fc2VhcmNoT2xkQXBwSWQoZS5hcHBfaWQsby5hcHBzQ29ubmVjdGluZ01hcC5hcHBzKX1gLG1ldGhvZDpcIkdFVFwifSk6YXdhaXQgby5ndWRodWIuZ2V0QXBwKG8uX3NlYXJjaE9sZEFwcElkKGUuYXBwX2lkLG8uYXBwc0Nvbm5lY3RpbmdNYXAuYXBwcykpLHImJnIuY2FsbCh0aGlzLGBHRVQgQVBQOiAke2kuYXBwX25hbWV9IChJdGVtcyBzdGVwcylgKTtsZXQgbD1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGkpKSxjPWwuaXRlbXNfbGlzdC5tYXAoZT0+KHtpbmRleF9udW1iZXI6ZS5pbmRleF9udW1iZXIsaXRlbV9pZDowLGZpZWxkczpbXX0pKS5maWx0ZXIoKGUsdCk9PnQ8PWEpO28uZ3VkaHViLmFkZE5ld0l0ZW1zKGUuYXBwX2lkLGMpLnRoZW4obj0+e3ImJnIuY2FsbCh0aGlzLGBBREQgTkVXIElURU1TOiAke2kuYXBwX25hbWV9IChJdGVtcyBzdGVwcylgKSxlLml0ZW1zX2xpc3Q9bixvLl91cGRhdGVNYXAoZS5pdGVtc19saXN0LGwuaXRlbXNfbGlzdCksby5fYWRkRmllbGRWYWx1ZShsLml0ZW1zX2xpc3QsZS5pdGVtc19saXN0LG8uYXBwc0Nvbm5lY3RpbmdNYXApLHMucHVzaChlKSx0KCl9KX0pKX0pLFByb21pc2UuYWxsKGwpLnRoZW4oKCk9PntzLmZvckVhY2goZT0+e2UuaXRlbXNfbGlzdC5mb3JFYWNoKGU9PntlLmZpZWxkcy5mb3JFYWNoKGU9PntvLmFwcHNDb25uZWN0aW5nTWFwLmZpZWxkcy5mb3JFYWNoKHQ9PntlLmZpZWxkX2lkPT09dC5vbGRfZmllbGRfaWQmJihlLmZpZWxkX2lkPXQubmV3X2ZpZWxkX2lkLGUuZWxlbWVudF9pZD10Lm5ld19maWVsZF9pZCl9KX0pfSl9KSxvLmRlbGV0ZUZpZWxkKHMpLG8ucmVwbGFjZVZhbHVlKHMsby5hcHBzQ29ubmVjdGluZ01hcCkudGhlbigoKT0+e2xldCBlPVtdO3MuZm9yRWFjaCh0PT57ZS5wdXNoKG5ldyBQcm9taXNlKGU9PntsZXQgbj10Lml0ZW1zX2xpc3QubWFwKGU9PihlLmZpZWxkcy5mb3JFYWNoKGU9PntkZWxldGUgZS5kYXRhX2lkfSksZSkpO28uZ3VkaHViLnVwZGF0ZUl0ZW1zKHQuYXBwX2lkLG4pLnRoZW4oKCk9PntyJiZyLmNhbGwodGhpcyxgUkVQTEFDRSBWQUxVRTogJHt0LmFwcF9uYW1lfSAoSXRlbXMgc3RlcHMpYCksZSgpfSl9KSl9KSxQcm9taXNlLmFsbChlKS50aGVuKCgpPT57ci5jYWxsKHRoaXMscyksaSgpfSl9KX0pfSl9ZGVsZXRlRmllbGQoZSl7ZS5mb3JFYWNoKGU9PntlLml0ZW1zX2xpc3QuZm9yRWFjaCh0PT57dC5maWVsZHM9dC5maWVsZHMuZmlsdGVyKHQ9PmUuZmllbGRfbGlzdC5maW5kSW5kZXgoZT0+ZS5maWVsZF9pZD09dC5maWVsZF9pZCk+LTEpfSl9KX1yZXBsYWNlVmFsdWUoZSx0KXtyZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgcj0+e2xldCBuPVtdLGk9dGhpcztlLmZvckVhY2goZT0+e2UuZmllbGRfbGlzdC5mb3JFYWNoKHI9PntcIml0ZW1fcmVmXCI9PT1yLmRhdGFfdHlwZSYmaS5fcmVwbGFjZVZhbHVlSXRlbVJlZihlLHIsdCksbi5wdXNoKG5ldyBQcm9taXNlKHQ9PntpLmd1ZGh1Yi5naGNvbnN0cnVjdG9yLmdldEluc3RhbmNlKHIuZGF0YV90eXBlKS50aGVuKG49PntpZih2b2lkIDA9PT1uKXtjb25zb2xlLmxvZyhcIkVSUk9SIFdISUxFIEdFVFRJTkcgSU5TVEFOQ0UgT0YgXCIsci5kYXRhX3R5cGUpLHQoe3R5cGU6ci5kYXRhX3R5cGV9KTtyZXR1cm59aWYoXCJmaWxlXCI9PW4uZ2V0VGVtcGxhdGUoKS5jb25zdHJ1Y3RvcilyZXR1cm4gaS5ndWRodWIudXRpbC5maWxlSW5zdGFsbGVySGVscGVyKGUuYXBwX2lkLGUuaXRlbXNfbGlzdCxyLmZpZWxkX2lkKS50aGVuKGU9Pnt0KGUpfSk7XCJkb2N1bWVudFwiPT1uLmdldFRlbXBsYXRlKCkuY29uc3RydWN0b3I/aS5kb2N1bWVudEluc3RhbGxlckhlbHBlcihlLmFwcF9pZCxlLml0ZW1zX2xpc3Qsci5maWVsZF9pZCkudGhlbihlPT57dChuKX0pOnQobil9KX0pKX0pfSksbi5sZW5ndGg+MD9Qcm9taXNlLmFsbChuKS50aGVuKGU9PntyKGUpfSk6cihyZXN1bHQpfSl9ZG9jdW1lbnRJbnN0YWxsZXJIZWxwZXIoZSx0LHIpe2xldCBuPXRoaXMsaT1bXTtyZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgYT0+e2ZvcihsZXQgYSBvZiB0KXtsZXQgdD1hLml0ZW1faWQsbz1hLmZpZWxkcy5maW5kKGU9PmUuZWxlbWVudF9pZD09PXIpO2lmKG8mJm8uZmllbGRfdmFsdWUmJm8uZmllbGRfdmFsdWUubGVuZ3RoPjApe2xldCBzPWF3YWl0IG4uZ3VkaHViLmdldERvY3VtZW50KHtfaWQ6by5maWVsZF92YWx1ZX0pO3MmJnMuZGF0YSYmKG8uZmllbGRfdmFsdWU9KGF3YWl0IG4uZ3VkaHViLmNyZWF0ZURvY3VtZW50KHthcHBfaWQ6ZSxpdGVtX2lkOnQsZWxlbWVudF9pZDpyLGRhdGE6cy5kYXRhfSkpLl9pZCxpLnB1c2goYSkpfX1hKGkpfSl9X3JlcGxhY2VWYWx1ZUl0ZW1SZWYoZSx0LHIpe2UuaXRlbXNfbGlzdC5mb3JFYWNoKGU9PntlLmZpZWxkcy5mb3JFYWNoKGU9PntpZihlLmZpZWxkX2lkPT09dC5maWVsZF9pZCYmZS5maWVsZF92YWx1ZSl7bGV0IHQ9ZS5maWVsZF92YWx1ZS5zcGxpdChcIixcIik7dC5mb3JFYWNoKChlLG4pPT57bGV0IGk9ZS5zcGxpdChcIi5cIik7ci5hcHBzLmZvckVhY2goZT0+e2lbMF09PWUub2xkX2FwcF9pZCYmKGlbMF09ZS5uZXdfYXBwX2lkKX0pLHIuaXRlbXMuZm9yRWFjaChlPT57aVsxXT09ZS5vbGRfaXRlbV9pZCYmKGlbMV09ZS5uZXdfaXRlbV9pZCl9KSx0W25dPWkuam9pbihcIi5cIil9KSxlLmZpZWxkX3ZhbHVlPXQuam9pbihcIixcIil9fSl9KX1fYWRkRmllbGRWYWx1ZShlLHQscil7dC5mb3JFYWNoKHQ9PntyLml0ZW1zLmZvckVhY2gocj0+e3QuaXRlbV9pZD09PXIubmV3X2l0ZW1faWQmJmUuZm9yRWFjaChlPT57ci5vbGRfaXRlbV9pZD09PWUuaXRlbV9pZCYmKHQuZmllbGRzPWUuZmllbGRzKX0pfSl9KX1fdXBkYXRlTWFwKGUsdCl7dC5mb3JFYWNoKHQ9PntlLmZvckVhY2goZT0+e3QuaW5kZXhfbnVtYmVyPT09ZS5pbmRleF9udW1iZXImJnRoaXMuYXBwc0Nvbm5lY3RpbmdNYXAuaXRlbXMucHVzaCh7b2xkX2l0ZW1faWQ6dC5pdGVtX2lkLG5ld19pdGVtX2lkOmUuaXRlbV9pZH0pfSl9KX1fc2VhcmNoT2xkQXBwSWQoZSx0KXtsZXQgcj0wO3JldHVybiB0LmZvckVhY2godD0+e3QubmV3X2FwcF9pZD09PWUmJihyPXQub2xkX2FwcF9pZCl9KSxyfWNyZWF0ZUFwcHMoZSx0LHIpe2xldCBuPXRoaXMsaT17c3RlcF9zaXplOjEwMC8oMyplLmFwcHMubGVuZ3RoKSxhcHBzOltdfTtyZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgYT0+e2xldCBvPXt9LHM9W10sbD1bXSx7YWNjZXNzdG9rZW46dX09YXdhaXQgbi5ndWRodWIucmVxLmF4aW9zUmVxdWVzdCh7bWV0aG9kOlwiUE9TVFwiLHVybDpcImh0dHBzOi8vZ3VkaHViLmNvbS9HdWRIdWJfVGVzdC9hdXRoL2xvZ2luXCIsZm9ybTp7YXV0aF9rZXk6XCIzSE1PdENiQzBNLzEvMWU0eTRVeG8vS2gvYUZONFY1TEcyLy81aXh4N1RaeWlVZk1iN0lIQUFIQ2o5UHNMck9TRHJadXVXa2JYNEJJWDIzZjUxSCtlQT09XCJ9fSk7Zm9yKGxldCBjIG9mIGUuYXBwcyl7bGV0IHA7cD1yP2F3YWl0IG4uZ3VkaHViLnJlcS5heGlvc1JlcXVlc3Qoe3VybDpgaHR0cHM6Ly9ndWRodWIuY29tL0d1ZEh1Yl9UZXN0L2FwaS9hcHAvZ2V0P3Rva2VuPSR7dX0mYXBwX2lkPSR7Y31gLG1ldGhvZDpcIkdFVFwifSk6YXdhaXQgbi5ndWRodWIuZ2V0QXBwKGMpLHQmJnQuY2FsbCh0aGlzLGBHRVQgQVBQOiAke3AuYXBwX25hbWV9IChBcHAgc3RlcHMpYCk7bGV0IGQ9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShwKSk7b1tkLmFwcF9pZF09ZCxpLmFwcHMucHVzaChkLmljb24pO2xldCBoPW4ucHJlcGFyZUFwcFRlbXBsYXRlKGQpO2guYXBwX25hbWU9aC5hcHBfbmFtZStcIiBOZXdcIixoLnByaXZhY3k9MSxlLmRhdGFfdG9fY2hhbmdlJiYoZS5kYXRhX3RvX2NoYW5nZS5uYW1lJiYoaC5hcHBfbmFtZT1lLmRhdGFfdG9fY2hhbmdlLm5hbWUpLGUuZGF0YV90b19jaGFuZ2UuaWNvbiYmKGguaWNvbj1lLmRhdGFfdG9fY2hhbmdlLmljb24pKSxuLnJlc2V0Vmlld3NJZHMoaCksbi5ndWRodWIuY3JlYXRlTmV3QXBwKGgpLnRoZW4ocj0+e3QmJnQuY2FsbCh0aGlzLGBDUkVBVEUgTkVXIEFQUDogJHtwLmFwcF9uYW1lfSAoQXBwIHN0ZXBzKWApLHMucHVzaChyKSxuLm1hcEFwcChkLHIsbi5hcHBzQ29ubmVjdGluZ01hcCksZS5hcHBzLmxlbmd0aD09cy5sZW5ndGgmJihuLmNvbm5lY3RBcHBzKHMsbi5hcHBzQ29ubmVjdGluZ01hcCxvKSxzLmZvckVhY2gocj0+e24uZ3VkaHViLnVwZGF0ZUFwcChyKS50aGVuKHI9Pnt0JiZ0LmNhbGwodGhpcyxgVVBEQVRFIEFQUDogJHtwLmFwcF9uYW1lfSAoQXBwIHN0ZXBzKWApLGwucHVzaChyKSxlLmFwcHMubGVuZ3RoPT1sLmxlbmd0aCYmYShsKX0pfSkpfSl9fSl9bWFwQXBwKGUsdCxyKXtyLmFwcHMucHVzaCh7b2xkX2FwcF9pZDplLmFwcF9pZCxuZXdfYXBwX2lkOnQuYXBwX2lkLG9sZF92aWV3X2luaXQ6ZS52aWV3X2luaXQsbmV3X3ZpZXdfaW5pdDp0LnZpZXdfaW5pdH0pLGUuZmllbGRfbGlzdC5mb3JFYWNoKGU9Pnt0LmZpZWxkX2xpc3QuZm9yRWFjaCh0PT57ZS5uYW1lX3NwYWNlPT10Lm5hbWVfc3BhY2UmJnIuZmllbGRzLnB1c2goe25hbWVfc3BhY2U6ZS5uYW1lX3NwYWNlLG9sZF9maWVsZF9pZDplLmZpZWxkX2lkLG5ld19maWVsZF9pZDp0LmZpZWxkX2lkfSl9KX0pLGUudmlld3NfbGlzdC5mb3JFYWNoKGU9Pnt0LnZpZXdzX2xpc3QuZm9yRWFjaCh0PT57ZS5uYW1lPT10Lm5hbWUmJnIudmlld3MucHVzaCh7bmFtZTplLm5hbWUsb2xkX3ZpZXdfaWQ6ZS52aWV3X2lkLG5ld192aWV3X2lkOnQudmlld19pZH0pfSl9KX1jcmF3bGluZyhlLHQpe2xldCByPW51bGw9PT1lP1tdOk9iamVjdC5rZXlzKGUpLG49dGhpcztyLmxlbmd0aD4wJiZyLmZvckVhY2gocj0+e2xldCBpPWVbcl07dm9pZCAwIT09aSYmXCJzdHJpbmdcIiE9dHlwZW9mIGUmJih0KHIsaSxlKSxuLmNyYXdsaW5nKGksdCkpfSl9cmVzZXRWaWV3c0lkcyhlKXtlLnZpZXdfaW5pdD0wLHRoaXMuY3Jhd2xpbmcoZS52aWV3c19saXN0LGZ1bmN0aW9uKGUsdCxyKXsoXCJ2aWV3X2lkXCI9PWV8fFwiY29udGFpbmVyX2lkXCI9PWUpJiYocltlXT0wKX0pfWNvbm5lY3RBcHBzKGUsdCxyKXtsZXQgbj10aGlzO3JldHVybiBlLmZvckVhY2goZT0+e3QuYXBwcy5mb3JFYWNoKHI9PntlLnZpZXdfaW5pdD09PXIubmV3X3ZpZXdfaW5pdCYmdC52aWV3cy5mb3JFYWNoKHQ9PntyLm9sZF92aWV3X2luaXQ9PT10Lm9sZF92aWV3X2lkJiYoZS52aWV3X2luaXQ9dC5uZXdfdmlld19pZCl9KX0pLG4uY3Jhd2xpbmcoZS5maWVsZF9saXN0LGZ1bmN0aW9uKGksYSxvKXtsZXQgcz1bXCJhcHBfaWRcIixcIkFwcElkXCIsXCJkZXN0aW5hdGlvbl9hcHBcIl0sbD1bXCJ2aWV3X2lkXCJdLHU9W1wic3JjXCJdLGM9KGUsdCk9PnQuc29tZSh0PT4tMSE9PWUuaW5kZXhPZih0KSk7aWYoYyhpLFtcImZpZWxkX2lkXCIsXCJGaWVsZElkXCIsXCJkZXN0aW5hdGlvbl9maWVsZFwiLFwiZWxlbWVudF9pZFwiXSkpe2xldCBlPVN0cmluZyhhKS5zcGxpdChcIixcIikscj1bXTt0LmZpZWxkcy5mb3JFYWNoKHQ9PntlLmZvckVhY2goZT0+e2U9PXQub2xkX2ZpZWxkX2lkJiZyLnB1c2godC5uZXdfZmllbGRfaWQpfSl9KSxyLmxlbmd0aCYmKG9baV09ci5qb2luKFwiLFwiKSl9aWYoYyhpLHMpJiZ0LmFwcHMuZm9yRWFjaChlPT57YT09ZS5vbGRfYXBwX2lkJiYob1tpXT1lLm5ld19hcHBfaWQpfSksYyhpLGwpJiZ0LnZpZXdzLmZvckVhY2goZT0+e2E9PWUub2xkX3ZpZXdfaWQmJihvW2ldPWUubmV3X3ZpZXdfaWQpfSksYyhpLHUpJiZpc0Zpbml0ZShhKSl7bGV0IHM9XCJjb250YWluZXJfaWRcIixsPXQuYXBwcy5maW5kKHQ9PnQubmV3X2FwcF9pZD09PWUuYXBwX2lkKS5vbGRfYXBwX2lkLHU9bi5maW5kUGF0aChyW2xdLnZpZXdzX2xpc3QscyxhKTtvW2ldPWAke24uZ2V0VmFsdWVCeVBhdGgoZS52aWV3c19saXN0LHUscyl9YH1pZigtMSE9PWkuaW5kZXhPZihcInRyaWdnZXJcIikmJmEubW9kZWwmJmEubW9kZWwubm9kZXMpe2xldCBlPWEubW9kZWwubm9kZXMscj1bXCJpbnB1dHNcIixcIm91dHB1dHNcIl07Zm9yKGxldCBuIGluIGUpci5mb3JFYWNoKHI9PntsZXQgaT1lW25dO09iamVjdC5rZXlzKGlbcl0pLmZpbHRlcihlPT5cIlwiIT09ZSYmIWlzTmFOKGUpKS5mb3JFYWNoKGU9PntsZXQgbj10LmZpZWxkcy5maWx0ZXIodD0+dC5vbGRfZmllbGRfaWQ9PWUpO2lmKDAhPT1uLmxlbmd0aCYmblswXS5uZXdfZmllbGRfaWQpe2xldCB0PW5bMF0ubmV3X2ZpZWxkX2lkLnRvU3RyaW5nKCksYT1pW3JdW2VdO2EuY29ubmVjdGlvbnMuZm9yRWFjaChyPT57ci5pbnB1dD09ZSYmKHIuaW5wdXQ9dCksci5vdXRwdXQ9PWUmJihyLm91dHB1dD10KX0pLGRlbGV0ZSBpW3JdW2VdLGlbcl1bdF09YX19KX0pfX0pfSksZX1nZXRWYWx1ZUJ5UGF0aChlLHQscil7bGV0IG49ZTtyZXR1cm4gdC5zcGxpdChcIi5cIikuZm9yRWFjaChlPT57bj1uW2VdfSksbltyXX1maW5kUGF0aChlLHQscil7bGV0IG49dGhpcyxpPSExLGE9ITEsbz1bXTtyZXR1cm4gbi5jcmF3bGluZyhlLGZ1bmN0aW9uKGUsbixzKXthJiZvLnJldmVyc2UoKS5mb3JFYWNoKGU9PnthJiYoZS5kZWxldGU9ITAsZS5wYXJlbnQ9PT1zJiYoYT0hMSwobz1vLmZpbHRlcihlPT4hZS5kZWxldGUpKS5yZXZlcnNlKCkpKX0pLGl8fChcIm9iamVjdFwiPT10eXBlb2Ygc1tlXSYmby5wdXNoKHtwcm9wOmUscGFyZW50OnN9KSxuPT1yJiZ0PT09ZT9pPSEwOk9iamVjdC5rZXlzKHMpLnBvcCgpIT09ZXx8XCJvYmplY3RcIj09dHlwZW9mIHNbZV18fChhPSEwKSl9KSxvLm1hcChlPT5lLnByb3ApLmpvaW4oXCIuXCIpfXByZXBhcmVBcHBUZW1wbGF0ZShlKXtsZXQgdD10aGlzLHI9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShlKSk7cmV0dXJuIHQuY3Jhd2xpbmcoci52aWV3c19saXN0LGZ1bmN0aW9uKGUsdCxyKXtcImVsZW1lbnRfaWRcIj09ZSYmKHIuZWxlbWVudF9pZD0tTnVtYmVyKHQpLHIuY3JlYXRlX2VsZW1lbnQ9LU51bWJlcih0KSl9KSxyLmZpZWxkX2xpc3QuZm9yRWFjaChlPT57ZS5jcmVhdGVfZmllbGQ9LU51bWJlcihlLmZpZWxkX2lkKSxlLmVsZW1lbnRfaWQ9LU51bWJlcihlLmZpZWxkX2lkKSxlLmZpZWxkX2lkPS1OdW1iZXIoZS5maWVsZF9pZCksZS5maWVsZF92YWx1ZT1cIlwifSksci5pdGVtc19saXN0PVtdLGRlbGV0ZSByLmFwcF9pZCxkZWxldGUgci5pY29uLmlkLGRlbGV0ZSByLmdyb3VwX2lkLGRlbGV0ZSByLnRyYXNoLGRlbGV0ZSByLmxhc3RfdXBkYXRlLGRlbGV0ZSByLmZpbGVfbGlzdCxyfX1jbGFzcyAkNTQyNjVjYzA0OThhNzNlMSRleHBvcnQkYWYzZTE5ZmVmYTk4OTE1NHtjb25zdHJ1Y3RvcihlKXt0aGlzLmd1ZGh1Yj1lfWZpbGVJbnN0YWxsZXJIZWxwZXIoZSx0LHIpe2xldCBuPXRoaXM7cmV0dXJuIG5ldyBQcm9taXNlKGk9PntsZXQgYT1bW11dLG89UHJvbWlzZS5yZXNvbHZlKCkscz1bXTt0LmZvckVhY2godD0+e2xldCBuPXQuaXRlbV9pZCxpPXQuZmllbGRzLmZpbmQoZT0+ZS5lbGVtZW50X2lkPT09cik7aSYmaS5maWVsZF92YWx1ZSYmaS5maWVsZF92YWx1ZS5zcGxpdChcIi5cIikuZm9yRWFjaCh0PT57bGV0IGk9e3NvdXJjZTp0LGRlc3RpbmF0aW9uOnthcHBfaWQ6ZSxpdGVtX2lkOm4sZWxlbWVudF9pZDpyfX07MTAhPT1hW2EubGVuZ3RoLTFdLmxlbmd0aD9hW2EubGVuZ3RoLTFdLnB1c2goaSk6YS5wdXNoKFtpXSl9KX0pLGEuZm9yRWFjaChlPT57bz1vLnRoZW4oKCk9Pm4uZ3VkaHViLmR1cGxpY2F0ZUZpbGUoZSkpLnRoZW4oZT0+e3M9Wy4uLnMsLi4uZV19KX0pLG8udGhlbigoKT0+e3QuZm9yRWFjaChlPT57bGV0IHQ9ZS5pdGVtX2lkLG49ZS5maWVsZHMuZmluZChlPT5lLmVsZW1lbnRfaWQ9PT1yKTtuJiZuLmZpZWxkX3ZhbHVlJiYobi5maWVsZF92YWx1ZT1cIlwiLHMuZm9yRWFjaChlPT57ZS5pdGVtX2lkPT09dCYmKG4uZmllbGRfdmFsdWU9bi5maWVsZF92YWx1ZS5zcGxpdChcIixcIikuZmlsdGVyKGU9PmUpLmNvbmNhdChlLmZpbGVfaWQpLmpvaW4oXCIsXCIpKX0pKX0pLGkoKX0pfSl9fWZ1bmN0aW9uICQyOTA2NTFjOGYzNDE3MjYyJGV4cG9ydCRmMDUwMjc2MzJiMzhmM2E0KGUsdCl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGUpPT09SlNPTi5zdHJpbmdpZnkodCl9YXN5bmMgZnVuY3Rpb24gJGI3YWQyYjg2MTljNTc3YjUkZXhwb3J0JGY4YTliOGZiNmUzNDVlMWQoZSl7YXdhaXQgUHJvbWlzZS5hbGwoZSk7bGV0IHQ9ITA7Zm9yKGxldCByIG9mIGUpe2xldCBlPWF3YWl0ICRiN2FkMmI4NjE5YzU3N2I1JHZhciRfY2hlY2tQcm9taXNlU3RhdHVzKHIpO2lmKFwicGVuZGluZ1wiPT09ZS5zdGF0ZSl7dD0hMTticmVha31pZihcInJlamVjdGVkXCI9PT1lLnN0YXRlKXRocm93IGUucmVhc29ufXJldHVybiEhdHx8JGI3YWQyYjg2MTljNTc3YjUkZXhwb3J0JGY4YTliOGZiNmUzNDVlMWQoZSl9ZnVuY3Rpb24gJGI3YWQyYjg2MTljNTc3YjUkdmFyJF9jaGVja1Byb21pc2VTdGF0dXMoZSl7bGV0IHQ9e3N0YXRlOlwicGVuZGluZ1wifTtyZXR1cm4gUHJvbWlzZS5yYWNlKFtlLHRdKS50aGVuKGU9PmU9PT10P2U6e3N0YXRlOlwicmVzb2x2ZWRcIix2YWx1ZTplfSxlPT4oe3N0YXRlOlwicmVqZWN0ZWRcIixyZWFzb246ZX0pKX1mdW5jdGlvbiAkMGEwNjFiMTZjZmI4M2E1NyRleHBvcnQkNmIwNmZiOTM3NWNmMjIyNShlLHQpe2lmKCFlfHwhZS5sZW5ndGgpcmV0dXJuW107aWYoIWVbMF0uZmllbGRzLmxlbmd0aClyZXR1cm4gZTt2YXIgcj10JiZ0LnNvcnRfZmllbGRfaWR8fGVbMF0uZmllbGRzWzBdLmZpZWxkX2lkO2Z1bmN0aW9uIG4oZSl7Zm9yKHZhciB0PW51bGwsbj0wO248ZS5maWVsZHMubGVuZ3RoO24rKylpZihlLmZpZWxkc1tuXS5maWVsZF9pZD09cil7dD1lLmZpZWxkc1tuXS5maWVsZF92YWx1ZTticmVha31yZXR1cm4gdH1yZXR1cm4gZS5zb3J0KGZ1bmN0aW9uKGUsdCl7dmFyIHI9bihlKSxpPW4odCk7cmV0dXJuIG51bGw9PT1yPy0xOm51bGw9PT1pPzE6L15cXGQrJC8udGVzdChyKSYmL15cXGQrJC8udGVzdChpKT9OdW1iZXIocik8TnVtYmVyKGkpPy0xOjE6L15cXGQrJC8udGVzdChyKXx8L15cXGQrJC8udGVzdChpKT8vXlxcZCskLy50ZXN0KHIpPy0xOjE6ci50b0xvd2VyQ2FzZSgpPmkudG9Mb3dlckNhc2UoKT8xOi0xfSksdCYmdC5kZXNjZW5kaW5nP2UucmV2ZXJzZSgpOmV9Y2xhc3MgJDIyZmMzZGRjZjE3ZmM4NDgkZXhwb3J0JGQyY2E0NTNiOTEzZGNkZWF7Y29uc3RydWN0b3IoZSl7dGhpcy5ndWRodWI9ZSx0aGlzLk1lcmdlRmllbGRzPW5ldyAkOWM1NjZlMmUxMDM4NzQyOSRleHBvcnQkMmUyYmNkODczOWFlMDM5KGUpLHRoaXMuSXRlbXNTZWxlY3Rpb249bmV3ICQ5YWQxMjhjMjhlY2M5MzIwJGV4cG9ydCQyZTJiY2Q4NzM5YWUwMzkoZSksdGhpcy5BcHBzVGVtcGxhdGVTZXJ2aWNlPW5ldyAkNzg1NTU0ZWIxZjJjYzcwNiRleHBvcnQkMmUyYmNkODczOWFlMDM5KGUpLHRoaXMuRmlsZUhlbHBlcj1uZXcgJDU0MjY1Y2MwNDk4YTczZTEkZXhwb3J0JGFmM2UxOWZlZmE5ODkxNTQoZSl9cHJlZmlsdGVyKGUsdD17fSl7cmV0dXJuICRjZTA0Y2M0MTVlODYxMjAwJGV4cG9ydCQ0MGEyNTRiNTRkYzI4ZmNkKGUsdGhpcy5ndWRodWIuc3RvcmFnZSx0aGlzLmd1ZGh1Yi5waXBlU2VydmljZSx0KX1maWx0ZXIoZSx0KXtyZXR1cm4gJGNlZGZiYTFjZGFkNWFkNTgkZXhwb3J0JDJlMmJjZDg3MzlhZTAzOShlLHQpfW1lcmdlRmlsdGVycyhlLHQpe3JldHVybiAkOGE3M2Y0OWZjMDlkZTRmMCRleHBvcnQkYWE3ODczMDJlYzAzYmYyYShlLHQpfWdyb3VwKGUsdCl7cmV0dXJuICQ3YTZiZTRjMWNmNGQ3ZTQwJGV4cG9ydCRlNWUyNWZiY2MxZjdhZmZlKGUsdCl9YXN5bmMgZ2V0RmlsdGVyZWRJdGVtcyhlPVtdLHQ9W10scixuLGksYT1cIlwiLG8scyl7bGV0IGw9YXdhaXQgdGhpcy5wcmVmaWx0ZXIodCx7ZWxlbWVudF9hcHBfaWQ6cixhcHBfaWQ6bixpdGVtX2lkOml9KSx1PXRoaXMuZmlsdGVyKGUsbCk7cmV0dXJuIHRoaXMuZ3JvdXAoYSx1KS5maWx0ZXIoZT0+IW98fDE9PT0kZDkzOTA5ZDc3MTU4NzFiNiRleHBvcnQkMjkzYTdlZGU5MzU0YmVlMChbZV0sbykubGVuZ3RoKS5maWx0ZXIoZT0+IXN8fDE9PT0kZDkzOTA5ZDc3MTU4NzFiNiRleHBvcnQkMjkzYTdlZGU5MzU0YmVlMChbZV0scykubGVuZ3RoKX1qc29uVG9JdGVtcyhlLHQpe3JldHVybiAkNTBlYWJiZDkwNjE4MTJkYiRleHBvcnQkMjQ2NmI2OWQ5ZDI2MDM3YyhlLHQpfWdldERhdGUoZSl7cmV0dXJuICRjMzVmZWI2Y2VjNjQ4M2U3JGV4cG9ydCRhYTM1MGI5NmQ5MWNkOTQoZSl9Y2hlY2tSZWN1cnJpbmdEYXRlKGUsdCl7cmV0dXJuICRjMzVmZWI2Y2VjNjQ4M2U3JGV4cG9ydCQ2ZjdhYjU4MWYzZTAwM2YoZSx0KX1wb3B1bGF0ZUl0ZW1zKGUsdCxyKXtyZXR1cm4gJDRjMmY4YjBkMmUyM2VlNGYkZXhwb3J0JDJlMmJjZDg3MzlhZTAzOShlLHQscil9cG9wdWxhdGVXaXRoRGF0ZShlLHQpe3JldHVybiAkYzM1ZmViNmNlYzY0ODNlNyRleHBvcnQkZmI5ZjA0OWY5ZmVlNDcwYyhlLHQpfXBvcHVsYXRlV2l0aEl0ZW1SZWYoZSx0LHIsbixpLGEpe3JldHVybiAkNzM0Mzc2YmZiYWFhOGI3MSRleHBvcnQkMmM2NzEwZDBmNTdhNjQ5NyhlLHQscixuLGksYSl9Y29tcGFyZUl0ZW1zKGUsdCxyKXtyZXR1cm4gJDczNDM3NmJmYmFhYThiNzEkZXhwb3J0JGIwYzZiM2ExNDJkZWNiNWEoZSx0LHIpfW1lcmdlSXRlbXMoZSx0LHIpe3JldHVybiAkNzM0Mzc2YmZiYWFhOGI3MSRleHBvcnQkY2VjNjVkZGZmYzgyNTczZShlLHQscil9bWVyZ2VPYmplY3RzKGUsdCxyKXtyZXR1cm4gJDk4NTY5YjhhZDEwMzg1NDIkZXhwb3J0JDIzMjFhZWExMzhiNDQ3ODAoZSx0LHIpfW1ha2VOZXN0ZWRMaXN0KGUsdCxyLG4saSl7cmV0dXJuICQzNTIzMjc0Y2ExYWQ4M2I0JGV4cG9ydCQyMWM3ZWExMzVjNTIxYzI4KGUsdCxyLG4saSl9YXN5bmMgbWVyZ2VDaHVua3MoZSl7cmV0dXJuICQyMjc3YjRhNzNhZDMyMWNhJGV4cG9ydCQ5NWJmODUxN2Y4MjVkY2MwKGUpfW1lcmdlRmllbGRMaXN0cyhlLHQpe3JldHVybiB0aGlzLk1lcmdlRmllbGRzLm1lcmdlRmllbGRMaXN0cyhlLHQpfWNyZWF0ZUZpZWxkc0xpc3RUb1ZpZXcoZSx0KXtyZXR1cm4gdGhpcy5NZXJnZUZpZWxkcy5jcmVhdGVGaWVsZHNMaXN0VG9WaWV3KGUsdCl9Y3JlYXRlRmllbGRzTGlzdFRvVmlld1dpdGhEYXRhVHlwZShlLHQpe3JldHVybiB0aGlzLk1lcmdlRmllbGRzLmNyZWF0ZUZpZWxkc0xpc3RUb1ZpZXdXaXRoRGF0YVR5cGUoZSx0KX1zZWxlY3RJdGVtcyhlLHQpe3JldHVybiB0aGlzLkl0ZW1zU2VsZWN0aW9uLnNlbGVjdEl0ZW1zKGUsdCl9Z2V0U2VsZWN0ZWRJdGVtcyhlKXtyZXR1cm4gdGhpcy5JdGVtc1NlbGVjdGlvbi5nZXRTZWxlY3RlZEl0ZW1zKGUpfWNsZWFyU2VsZWN0ZWRJdGVtcyhlKXtyZXR1cm4gdGhpcy5JdGVtc1NlbGVjdGlvbi5jbGVhclNlbGVjdGVkSXRlbXMoZSl9aXNJdGVtU2VsZWN0ZWQoZSx0KXtyZXR1cm4gdGhpcy5JdGVtc1NlbGVjdGlvbi5pc0l0ZW1TZWxlY3RlZChlLHQpfWpzb25Db25zdHJ1Y3RvcihlLHQscixuKXtyZXR1cm4gJDg0MDExMWRkYzVmMjg5NTIkZXhwb3J0JDY5ZjQzNGFjZmJkYjBiMzIoZSx0LHRoaXMscixuKX1maWxlSW5zdGFsbGVySGVscGVyKGUsdCxyKXtyZXR1cm4gdGhpcy5GaWxlSGVscGVyLmZpbGVJbnN0YWxsZXJIZWxwZXIoZSx0LHIpfWNyZWF0ZUFwcHNGcm9tVGVtcGxhdGUoZSx0LHIsbil7cmV0dXJuIHRoaXMuQXBwc1RlbXBsYXRlU2VydmljZS5jcmVhdGVBcHBzRnJvbVRlbXBsYXRlKGUsdCxyLG4pfWNyZWF0ZUFwcHMoZSl7cmV0dXJuIHRoaXMuQXBwc1RlbXBsYXRlU2VydmljZS5jcmVhdGVBcHBzKGUpfWNyZWF0ZUl0ZW1zKGUsdCl7cmV0dXJuIHRoaXMuQXBwc1RlbXBsYXRlU2VydmljZS5jcmVhdGVJdGVtcyhlLHQpfWFyZVZpZXdMaXN0c0VxdWFsKGUsdCl7bGV0IHI9ZS5zb3J0KChlLHQpPT5lLnZpZXdfaWQtdC52aWV3X2lkKSxuPXQuc29ydCgoZSx0KT0+ZS52aWV3X2lkLXQudmlld19pZCk7cmV0dXJuIHRoaXMuY29tcGFyZU9iamVjdHMocixuKX1hcmVGaWVsZExpc3RzRXF1YWwoZSx0KXtsZXQgcj1lLnNvcnQoKGUsdCk9PmUuZmllbGRfaWQtdC5maWVsZF9pZCksbj10LnNvcnQoKGUsdCk9PmUuZmllbGRfaWQtdC5maWVsZF9pZCk7cmV0dXJuIHRoaXMuY29tcGFyZU9iamVjdHMocixuKX1jb21wYXJlT2JqZWN0cyhlLHQpe3JldHVybiAkMjkwNjUxYzhmMzQxNzI2MiRleHBvcnQkZjA1MDI3NjMyYjM4ZjNhNChlLHQpfWNvbXBhcmVBcHBzSXRlbXNMaXN0cyhlLHQscil7bGV0IG49bmV3IEJsb2IoWyRiZDVmYWViYTEwNjE4YjZhJGV4cG9ydCQyNTQxNWI2NGYyNDQ0YTk4KCldLHt0eXBlOlwiYXBwbGljYXRpb24vamF2YXNjcmlwdFwifSk7dGhpcy53b3JrZXI9bmV3IFdvcmtlcihVUkwuY3JlYXRlT2JqZWN0VVJMKG4pKSx0aGlzLndvcmtlci5wb3N0TWVzc2FnZSh7aXRlbXNfbGlzdDE6ZSxpdGVtc19saXN0Mjp0fSksdGhpcy53b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIixlPT57bGV0e2RpZmY6dH09ZS5kYXRhO3IodCl9KX1keW5hbWljUHJvbWlzZUFsbChlKXtyZXR1cm4gJGI3YWQyYjg2MTljNTc3YjUkZXhwb3J0JGY4YTliOGZiNmUzNDVlMWQoZSl9c29ydEl0ZW1zKGUsdCl7cmV0dXJuICQwYTA2MWIxNmNmYjgzYTU3JGV4cG9ydCQ2YjA2ZmI5Mzc1Y2YyMjI1KGUsdCl9ZGVib3VuY2UoZSx0KXtsZXQgcjtyZXR1cm4gZnVuY3Rpb24oLi4ubil7Y2xlYXJUaW1lb3V0KHIpLHI9c2V0VGltZW91dCgoKT0+e2UuYXBwbHkodGhpcyxuKX0sdCl9fX1jbGFzcyAkMzU4MTk2YTU1ZWQwYjAxMCRleHBvcnQkMzM0YzI5NzI1YTc4YzIxZHtjb25zdHJ1Y3RvcihlLHQpe3RoaXMucmVxPWUsdGhpcy5zdG9yYWdlPXR9YXN5bmMgbG9naW4oe3VzZXJuYW1lOmUscGFzc3dvcmQ6dH09e30pe2xldCByPWF3YWl0IHRoaXMubG9naW5BcGkoZSx0KTtyZXR1cm4gdGhpcy5zdG9yYWdlLnVwZGF0ZVVzZXIocikscn1hc3luYyBsb2dpbldpdGhUb2tlbihlKXtsZXQgdD1hd2FpdCB0aGlzLmxvZ2luV2l0aFRva2VuQXBpKGUpO3JldHVybiB0aGlzLnN0b3JhZ2UudXBkYXRlVXNlcih0KSx0fWFzeW5jIGxvZ291dChlKXtyZXR1cm4gYXdhaXQgdGhpcy5sb2dvdXRBcGkoZSl9YXN5bmMgc2lnbnVwKGUpe3JldHVybiBhd2FpdCB0aGlzLnNpZ251cEFwaShlKX1hc3luYyB1cGRhdGVUb2tlbihlKXtyZXR1cm4gYXdhaXQgdGhpcy51cGRhdGVUb2tlbkFwaShlKX1hc3luYyB1cGRhdGVVc2VyKGUpe2xldCB0PWF3YWl0IHRoaXMudXBkYXRlVXNlckFwaShlKTtyZXR1cm4gdGhpcy5zdG9yYWdlLnVwZGF0ZVVzZXIodCksdH1hc3luYyB1cGRhdGVBdmF0YXIoZSl7bGV0IHQ9YXdhaXQgdGhpcy5hdmF0YXJVcGxvYWRBcGkoZSk7cmV0dXJuIHRoaXMuc3RvcmFnZS51cGRhdGVVc2VyKHQpLHR9YXN5bmMgZ2V0VXNlcnNMaXN0KGUpe3JldHVybiBhd2FpdCB0aGlzLmdldFVzZXJzTGlzdEFwaShlKX1hc3luYyBsb2dpbkFwaShlLHQpe3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5yZXEuYXhpb3NSZXF1ZXN0KHttZXRob2Q6XCJQT1NUXCIsdXJsOmAke3RoaXMucmVxLnJvb3R9L2F1dGgvbG9naW5gLGZvcm06e3VzZXJuYW1lOmUscGFzc3dvcmQ6dH19KX1jYXRjaChlKXtjb25zb2xlLmxvZyhlKX19YXN5bmMgbG9naW5XaXRoVG9rZW5BcGkoZSl7dHJ5e3JldHVybiBhd2FpdCB0aGlzLnJlcS5heGlvc1JlcXVlc3Qoe21ldGhvZDpcIlBPU1RcIix1cmw6YCR7dGhpcy5yZXEucm9vdH0vYXV0aC9sb2dpbj9hY2Nlc3N0b2tlbj0ke2V9YH0pfWNhdGNoKGUpe2NvbnNvbGUubG9nKGUpfX1hc3luYyB1cGRhdGVUb2tlbkFwaShlKXt0cnl7cmV0dXJuIGF3YWl0IHRoaXMucmVxLmF4aW9zUmVxdWVzdCh7bWV0aG9kOlwiUE9TVFwiLHVybDpgJHt0aGlzLnJlcS5yb290fS9hdXRoL2xvZ2luYCxmb3JtOnthdXRoX2tleTplfX0pfWNhdGNoKGUpe2NvbnNvbGUubG9nKGUpfX1sb2dvdXRBcGkoZSl7cmV0dXJuIHRoaXMucmVxLnBvc3Qoe3VybDpcIi9hdXRoL2xvZ291dFwiLGZvcm06e3Rva2VuOmV9fSl9c2lnbnVwQXBpKGUpe3JldHVybiB0aGlzLnJlcS5heGlvc1JlcXVlc3Qoe21ldGhvZDpcIlBPU1RcIix1cmw6YCR7dGhpcy5yZXEucm9vdH0vYXV0aC9zaW5ndXBgLGZvcm06e3VzZXI6SlNPTi5zdHJpbmdpZnkoZSl9fSl9Z2V0VXNlcnNMaXN0QXBpKGUpe3JldHVybiB0aGlzLnJlcS5nZXQoe3VybDpcIi9hdXRoL3VzZXJsaXN0XCIscGFyYW1zOntrZXl3b3JkOmV9fSl9dXBkYXRlVXNlckFwaShlKXtyZXR1cm4gdGhpcy5yZXEucG9zdCh7dXJsOlwiL2F1dGgvdXBkYXRldXNlclwiLGZvcm06e3VzZXI6SlNPTi5zdHJpbmdpZnkoZSl9fSl9YXZhdGFyVXBsb2FkQXBpKGUpe3JldHVybiB0aGlzLnJlcS5wb3N0KHt1cmw6XCIvYXV0aC9hdmF0YXItdXBsb2FkXCIsZm9ybTp7aW1hZ2U6ZX19KX1nZXRVc2VyQnlJZEFwaShlKXtyZXR1cm4gdGhpcy5yZXEuZ2V0KHt1cmw6XCIvYXV0aC9nZXR1c2VyYnlpZFwiLHBhcmFtczp7aWQ6ZX19KX1nZXRWZXJzaW9uKCl7cmV0dXJuIHRoaXMucmVxLmdldCh7dXJsOlwiL3ZlcnNpb25cIn0pfWdldFVzZXJGcm9tU3RvcmFnZShlKXtyZXR1cm4gdGhpcy5zdG9yYWdlLmdldFVzZXJzTGlzdCgpLmZpbmQodD0+dC51c2VyX2lkPT1lKX1zYXZlVXNlclRvU3RvcmFnZShlKXtsZXQgdD10aGlzLnN0b3JhZ2UuZ2V0VXNlcnNMaXN0KCkscj10LmZpbmQodD0+dC51c2VyX2lkPT1lLnVzZXJfaWQpO3JldHVybiByfHwodC5wdXNoKGUpLGUpfWFzeW5jIGdldFVzZXJCeUlkKGUpe2xldCB0PXRoaXMuZ2V0VXNlckZyb21TdG9yYWdlKGUpO2lmKCF0KXtsZXQgcj1hd2FpdCB0aGlzLmdldFVzZXJCeUlkQXBpKGUpO2lmKCFyKXJldHVybiBudWxsOyh0PXRoaXMuZ2V0VXNlckZyb21TdG9yYWdlKGUpKXx8KHRoaXMuc2F2ZVVzZXJUb1N0b3JhZ2UociksdD1yKX1yZXR1cm4gdH1hc3luYyBnZXRUb2tlbigpe2xldCBlPW5ldyBEYXRlKHRoaXMuc3RvcmFnZS5nZXRVc2VyKCkuZXhwaXJ5ZGF0ZSksdD1uZXcgRGF0ZSxyPXRoaXMuc3RvcmFnZS5nZXRVc2VyKCkuYWNjZXNzdG9rZW47aWYoZTx0fHwhcil7bGV0IGU9YXdhaXQgdGhpcy51cGRhdGVUb2tlbih0aGlzLnN0b3JhZ2UuZ2V0VXNlcigpLmF1dGhfa2V5KTt0aGlzLnN0b3JhZ2UudXBkYXRlVXNlcihlKSxyPWUuYWNjZXNzdG9rZW59cmV0dXJuIHJ9fXZhciAka21jQVQ9cGFyY2VsUmVxdWlyZShcImttY0FUXCIpLCRha1hLND1wYXJjZWxSZXF1aXJlKFwiYWtYSzRcIiksJDV4b3pCPXBhcmNlbFJlcXVpcmUoXCI1eG96QlwiKTthc3luYyBmdW5jdGlvbiAkYTAxYzc4NzA1YmM0NjI4YSRleHBvcnQkMmUyYmNkODczOWFlMDM5KGUsdCxyLG4saSl7dHJ5e2xldCBhO3J8fGNvbnNvbGUuZXJyb3IoYEpTIGxpbmsgbXVzdCBiZSBwcm92aWRlZCBmb3IgdGhpcyBkYXRhIHR5cGUgLSAke3R9YCk7bGV0IG89ZT0+KCQ1eG96Qi5JU19CUk9XU0VSX01BSU5fVEhSRUFEfHwoJHBhcmNlbCRnbG9iYWwud2luZG93PXByb3h5LCRwYXJjZWwkZ2xvYmFsLmRvY3VtZW50PWkuZG9jdW1lbnQsJHBhcmNlbCRnbG9iYWwuRWxlbWVudD1pLkVsZW1lbnQsJHBhcmNlbCRnbG9iYWwuQ2hhcmFjdGVyRGF0YT1pLkNoYXJhY3RlckRhdGEsJHBhcmNlbCRnbG9iYWwudGhpcz1wcm94eSwkcGFyY2VsJGdsb2JhbC5zZWxmPXByb3h5LCRwYXJjZWwkZ2xvYmFsLkJsb2I9aS5CbG9iLCRwYXJjZWwkZ2xvYmFsLk5vZGU9aS5Ob2RlLCRwYXJjZWwkZ2xvYmFsLm5hdmlnYXRvcj1pLm5hdmlnYXRvciwkcGFyY2VsJGdsb2JhbC5IVE1MRWxlbWVudD1pLkhUTUxFbGVtZW50LCRwYXJjZWwkZ2xvYmFsLlhNTEh0dHBSZXF1ZXN0PWkuWE1MSHR0cFJlcXVlc3QsJHBhcmNlbCRnbG9iYWwuV2ViU29ja2V0PWkuV2ViU29ja2V0LCRwYXJjZWwkZ2xvYmFsLmNyeXB0bz1pLmNyeXB0bywkcGFyY2VsJGdsb2JhbC5ET01QYXJzZXI9aS5ET01QYXJzZXIsJHBhcmNlbCRnbG9iYWwuU3ltYm9sPWkuU3ltYm9sLCRwYXJjZWwkZ2xvYmFsLmRvY3VtZW50LnF1ZXJ5Q29tbWFuZFN1cHBvcnRlZD1lPT4oY29uc29sZS5sb2coXCJRVUVSWSBDT01NQU5EIFNVUFBPUlRFRDogXCIsZSksITEpLCRwYXJjZWwkZ2xvYmFsLmFuZ3VsYXI9YW5ndWxhciksbmV3IFByb21pc2UoYXN5bmMgcj0+e2xldCBuPWF3YWl0ICRwYXJjZWwkaW50ZXJvcERlZmF1bHQoJGFrWEs0KS5nZXQoZSkuY2F0Y2gocj0+e2NvbnNvbGUubG9nKGBGYWlsZWQgdG8gZmV0Y2g6ICR7ZX0gaW4gZ2hjb25zdHJ1Y3Rvci4gTW9kdWxlIGlkOiAke3R9YCl9KSxpPWVuY29kZVVSSUNvbXBvbmVudChuLmRhdGEpLGE9XCJkYXRhOnRleHQvamF2YXNjcmlwdDtjaGFyc2V0PXV0Zi04LFwiK2k7cihhKX0pKSxzPWF3YWl0IG8ocik7dHJ5e2E9YXdhaXQgaW1wb3J0KHMpfWNhdGNoKGUpe2NvbnNvbGUubG9nKGBFcnJvciB3aGlsZSBpbXBvcnRpbmcgbW9kdWxlOiAke3R9YCksY29uc29sZS5sb2coZSl9bGV0IGw9bmV3IGEuZGVmYXVsdCh0KTtpZihuJiYkNXhvekIuSVNfQlJPV1NFUil7bGV0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImxpbmtcIik7ZS5ocmVmPW4sZS5zZXRBdHRyaWJ1dGUoXCJkYXRhLW1vZHVsZVwiLHQpLGUuc2V0QXR0cmlidXRlKFwicmVsXCIsXCJzdHlsZXNoZWV0XCIpLGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiaGVhZFwiKVswXS5hcHBlbmRDaGlsZChlKX1yZXR1cm57dHlwZTp0LGdldFRlbXBsYXRlOmZ1bmN0aW9uKGUsdCxyLG4saSxhKXtsZXQgbz1cImZhbHNlXCIhPT1yO3JldHVybiBsLmdldFRlbXBsYXRlKGUsdCxvLG4saSxhKX0sZ2V0RGVmYXVsdFZhbHVlOmZ1bmN0aW9uKGUsdCxyLG4pe3JldHVybiBuZXcgUHJvbWlzZShhc3luYyBpPT57bGV0IGE9bC5nZXREZWZhdWx0VmFsdWU7aWYoYSl7bGV0IG89YXdhaXQgYShlLHQscixuKTtpKG8pfWVsc2UgaShudWxsKX0pfSxnZXRTZXR0aW5nczpmdW5jdGlvbihlLHQscil7cmV0dXJuIGwuZ2V0U2V0dGluZ3MoZSx0LHIpfSxmaWx0ZXI6e2dldFNlYXJjaE9wdGlvbnM6ZnVuY3Rpb24oZSl7bGV0IHQ9bDtyZXR1cm4gdC5maWx0ZXImJnQuZmlsdGVyLmdldFNlYXJjaE9wdGlvbnM/bC5maWx0ZXIuZ2V0U2VhcmNoT3B0aW9ucyhlKTpbXX0sZ2V0RHJvcGRvd25WYWx1ZXM6ZnVuY3Rpb24oKXtsZXQgZT1sO3JldHVybiBlLmZpbHRlciYmZS5maWx0ZXIuZ2V0RHJvcGRvd25WYWx1ZXM/ZS5maWx0ZXIuZ2V0RHJvcGRvd25WYWx1ZXMoKTpbXX19LGdldEludGVycHJldGF0aW9uOmZ1bmN0aW9uKHIsbixpLGEsbyxzKXtyZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgdT0+e2xldCBjPWw7dHJ5e2xldCB0PWF3YWl0IGMuZ2V0SW50ZXJwcmV0YXRpb24oZSxyLHMsbyxhLGkpLGw9dC5maW5kKGU9PmUuaWQ9PW4pfHx0LmZpbmQoZT0+XCJkZWZhdWx0XCI9PWUuaWQpLHA9YXdhaXQgbC5jb250ZW50KCk7dSh7aHRtbDpwfSl9Y2F0Y2goZSl7Y29uc29sZS5sb2coYEVSUk9SIElOICR7dH1gLGUpLHUoe2h0bWw6XCI8c3Bhbj5ubyBpbnRlcnByZXRhdGlvbjwvc3Bhbj5cIn0pfX0pfSxnZXRJbnRlcnByZXRhdGlvbnNMaXN0OmZ1bmN0aW9uKGUsdCxyLG4pe3JldHVybiBsLmdldEludGVycHJldGF0aW9uKGUsdCxyLG4pfSxnZXRJbnRlcnByZXRhdGVkVmFsdWU6ZnVuY3Rpb24oZSx0LHIsbil7cmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIGk9PntsZXQgYT1sLmdldEludGVycHJldGF0ZWRWYWx1ZTtpZihhKXtsZXQgbz1hd2FpdCBhKGUsdCxyLG4pO2kobyl9ZWxzZSBpKGUpfSl9LG9uTWVzc2FnZTpmdW5jdGlvbihlLHQscil7cmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIG49PntsZXQgaT1sLm9uTWVzc2FnZTtpZihpKXtsZXQgYT1hd2FpdCBpKGUsdCxyKTtuKGEpfW4obnVsbCl9KX0sZXh0ZW5kQ29udHJvbGxlcjpmdW5jdGlvbihlKXtsLmdldEFjdGlvblNjb3BlKGUpfSxydW5BY3Rpb246ZnVuY3Rpb24oZSl7dHJ5e2wucnVuQWN0aW9uKGUpfWNhdGNoKGUpe319LGdldFdpbmRvd1Njb3BlOmZ1bmN0aW9uKGUpe3JldHVybiBsLmdldFdpbmRvd1Njb3BlKGUpfSxnZXRXaW5kb3dIVE1MOmZ1bmN0aW9uKGUpe3JldHVybiBsLmdldFdpbmRvd0hUTUwoZSl9fX1jYXRjaChlKXtjb25zb2xlLmxvZyhlKSxjb25zb2xlLmxvZyhgRmFpbGVkIGluIGNyZWF0ZUNsYXNzSW5zdGFuY2UgKGdoY29uc3RydWN0b3IpLiBNb2R1bGUgaWQ6ICR7dH0uIEpTIHVybDogJHtyfWApfX1jbGFzcyAkYWZlMzg0OTAxZTAyYTQzOCRleHBvcnQkMmQyNjc4Y2NjZjZlNDAyMntjb25zdHJ1Y3RvcihlKXt0aGlzLmd1ZGh1Yj1lLHRoaXMuY2FjaGU9e30sdGhpcy5tb2R1bGVzUXVldWU9e30sdGhpcy5hbmd1bGFySW5qZWN0b3IsdGhpcy5ub2RlV2luZG93fWFzeW5jIGdldEluc3RhbmNlKGUpe3JldHVybiB0aGlzLmdldENhY2hlZChlKXx8KHRoaXMubW9kdWxlc1F1ZXVlW2VdfHwodGhpcy5tb2R1bGVzUXVldWVbZV09dGhpcy5jcmVhdGVJbnN0YW5jZShlKSksYXdhaXQgdGhpcy5tb2R1bGVzUXVldWVbZV0pLHRoaXMuZ2V0Q2FjaGVkKGUpfXB1cFRvQ2FjaGUoZSx0KXt0aGlzLmNhY2hlW2VdPXR9Z2V0Q2FjaGVkKGUpe3JldHVybiB0aGlzLmNhY2hlW2VdfWluaXRBbmd1bGFySW5qZWN0b3IoZSl7dGhpcy5hbmd1bGFySW5qZWN0b3I9ZX1pbml0SnNkb21XaW5kb3coZSl7dGhpcy5ub2RlV2luZG93PWV9YXN5bmMgY3JlYXRlSW5zdGFuY2UoZSl7bGV0IHQscj10aGlzLmd1ZGh1Yi5zdG9yYWdlLmdldE1vZHVsZVVybChlKTtpZighcil7Y29uc29sZS5sb2coYENhbm5vdCBmaW5kIG1vZHVsZTogJHtlfWApO3JldHVybn1yZXR1cm5cImdoX2VsZW1lbnRcIj09PXIudHlwZSYmKFwiYW5ndWxhclwiPT09ci50ZWNobm9sb2d5P3Q9YXdhaXQgJHBhcmNlbCRpbnRlcm9wRGVmYXVsdCgka21jQVQpKHRoaXMuZ3VkaHViLGUsci51cmwsdGhpcy5hbmd1bGFySW5qZWN0b3IsdGhpcy5ub2RlV2luZG93KTpcImNsYXNzXCI9PT1yLnRlY2hub2xvZ3kmJih0PWF3YWl0ICRhMDFjNzg3MDViYzQ2MjhhJGV4cG9ydCQyZTJiY2Q4NzM5YWUwMzkodGhpcy5ndWRodWIsZSxyLmpzLHIuY3NzLHRoaXMubm9kZVdpbmRvdykpKSx0JiZ0aGlzLnB1cFRvQ2FjaGUoZSx0KSx0fX1jbGFzcyAkNzRmYjEwZDVmYzMxZTY2OCRleHBvcnQkZTZjZTg2YjhiYzM5NzI4Yntjb25zdHJ1Y3RvcihlLHQscixuLGkpe3RoaXMuc3RvcmFnZT1lLHRoaXMucGlwZVNlcnZpY2U9dCx0aGlzLnJlcT1yLHRoaXMuYXBwUHJvY2Vzc29yPW4sdGhpcy51dGlsPWksdGhpcy5pdGVtTGlzdGVuZXJzKCl9YXN5bmMgYWRkSXRlbXNBcGkoZSx0KXt0cnl7cmV0dXJuIGF3YWl0IHRoaXMucmVxLnBvc3Qoe3VybDpcIi9hcGkvaXRlbXMvYWRkXCIsZm9ybTp7aXRlbXM6SlNPTi5zdHJpbmdpZnkodCksYXBwX2lkOmV9fSl9Y2F0Y2goZSl7cmV0dXJuIGNvbnNvbGUubG9nKGUpLG51bGx9fWFzeW5jIHVwZGF0ZUl0ZW1zQXBpKGUsdCl7dHJ5e3JldHVybiBhd2FpdCB0aGlzLnJlcS5wb3N0KHt1cmw6XCIvYXBpL2l0ZW1zL3VwZGF0ZVwiLGZvcm06e2l0ZW1zOkpTT04uc3RyaW5naWZ5KHQpLGFwcF9pZDplfX0pfWNhdGNoKGUpe3JldHVybiBjb25zb2xlLmxvZyhlKSxudWxsfX1kZWxldGVJdGVtc0FwaShlKXt0cnl7bGV0IHQ9dGhpcy5yZXEucG9zdCh7dXJsOlwiL2FwaS9pdGVtcy9kZWxldGVcIixmb3JtOntpdGVtc19pZHM6SlNPTi5zdHJpbmdpZnkoZSl9fSk7cmV0dXJuIHQuZnJvbV9hcHBzX2xpc3Q9ITAsdH1jYXRjaChlKXtyZXR1cm4gY29uc29sZS5sb2coZSksbnVsbH19YXN5bmMgYWRkSXRlbXNUb1N0b3JhZ2UoZSx0KXtsZXQgcj1hd2FpdCB0aGlzLmFwcFByb2Nlc3Nvci5nZXRBcHAoZSk7cmV0dXJuIHImJih0LmZvckVhY2godD0+e3IuaXRlbXNfbGlzdC5wdXNoKHQpLHIuaXRlbXNfb2JqZWN0W3QuaXRlbV9pZF09e307Zm9yKGxldCBlPTA7ZTx0LmZpZWxkcy5sZW5ndGg7ZSsrKXIuaXRlbXNfb2JqZWN0W3QuaXRlbV9pZF1bdC5maWVsZHNbZV0uZmllbGRfaWRdPXQuZmllbGRzW2VdO3RoaXMucGlwZVNlcnZpY2UuZW1pdChcImdoX2l0ZW1fdXBkYXRlXCIse2FwcF9pZDplfSxbdF0pfSksdGhpcy5waXBlU2VydmljZS5lbWl0KFwiZ2hfaXRlbXNfdXBkYXRlXCIse2FwcF9pZDplfSxyLml0ZW1zX2xpc3QpLHRoaXMuc3RvcmFnZS51cGRhdGVBcHAocikpLHJ9YXN5bmMgdXBkYXRlSXRlbXNJblN0b3JhZ2UoZSx0KXt0aGlzLnBpcGVTZXJ2aWNlLmVtaXQoXCJnaF9pdGVtc191cGRhdGVcIix7YXBwX2lkOmV9LHQpO2xldCByPWF3YWl0IHRoaXMuYXBwUHJvY2Vzc29yLmdldEFwcChlKTtyZXR1cm4gciYmdCYmdC5mb3JFYWNoKHQ9PntsZXQgbj17YXBwX2lkOmV9O3RoaXMucGlwZVNlcnZpY2UuZW1pdChcImdoX2l0ZW1fdXBkYXRlXCIsbixbdF0pLG4uaXRlbV9pZD10Lml0ZW1faWQsdGhpcy5waXBlU2VydmljZS5lbWl0KFwiZ2hfaXRlbV91cGRhdGVcIixuLHQpO2xldCBpPXIuaXRlbXNfbGlzdC5maW5kKGU9PmUuaXRlbV9pZD09dC5pdGVtX2lkKTtpJiZ0LmZpZWxkcy5mb3JFYWNoKGU9PntsZXQgdD1pLmZpZWxkcy5maW5kKHQ9PnQuZmllbGRfaWQ9PWUuZmllbGRfaWQpO24uZmllbGRfaWQ9ZS5maWVsZF9pZCx0P3QuZmllbGRfdmFsdWUhPWUuZmllbGRfdmFsdWUmJih0LmZpZWxkX3ZhbHVlPWUuZmllbGRfdmFsdWUsci5pdGVtc19vYmplY3RbaS5pdGVtX2lkXVt0LmZpZWxkX2lkXT10LHRoaXMucGlwZVNlcnZpY2UuZW1pdChcImdoX3ZhbHVlX3VwZGF0ZVwiLG4sZS5maWVsZF92YWx1ZSkpOihpLmZpZWxkcy5wdXNoKGUpLHIuaXRlbXNfb2JqZWN0W2kuaXRlbV9pZF1bZS5maWVsZF9pZF09ZSx0aGlzLnBpcGVTZXJ2aWNlLmVtaXQoXCJnaF92YWx1ZV91cGRhdGVcIixuLGUuZmllbGRfdmFsdWUpKX0pfSksdH1oYW5kbGVEaWZmKGUsdCl7dGhpcy51cGRhdGVJdGVtc0luU3RvcmFnZShlLHQuZGlmZl9zcmNfaXRlbXMpLHRoaXMuYWRkSXRlbXNUb1N0b3JhZ2UoZSx0Lm5ld19zcmNfaXRlbXMpLHRoaXMuZGVsZXRlSXRlbXNGcm9tU3RvcmFnZShlLHQudHJhc2hfc3JjX2l0ZW1zKX1hc3luYyBkZWxldGVJdGVtc0Zyb21TdG9yYWdlKGUsdD1bXSl7bGV0IHI9YXdhaXQgdGhpcy5hcHBQcm9jZXNzb3IuZ2V0QXBwKGUpO3ImJihyLml0ZW1zX2xpc3Q9ci5pdGVtc19saXN0LmZpbHRlcihlPT4hdC5maW5kKHQ9PmUuaXRlbV9pZD09dC5pdGVtX2lkKXx8KGRlbGV0ZSByLml0ZW1zX29iamVjdFtlLml0ZW1faWRdLCExKSksdGhpcy5waXBlU2VydmljZS5lbWl0KFwiZ2hfaXRlbXNfdXBkYXRlXCIse2FwcF9pZDplfSxyLml0ZW1zX2xpc3QpLHRoaXMuc3RvcmFnZS51cGRhdGVBcHAocikpfWFzeW5jIGdldEl0ZW1zKGUsdD0hMSl7bGV0IHI9YXdhaXQgdGhpcy5hcHBQcm9jZXNzb3IuZ2V0QXBwKGUpO3JldHVybiByP3IuaXRlbXNfbGlzdDpudWxsfWFzeW5jIGFkZE5ld0l0ZW1zKGUsdCl7bGV0IHI9dC5tYXAoZT0+KHsuLi5lLGZpZWxkczokMmY5ZWMzMGUyZmQ2OTVhMyRleHBvcnQkNDg4ZWRiYjkxZTRkMWYxNyhlLmZpZWxkcyl9KSksbj1hd2FpdCB0aGlzLmFkZEl0ZW1zQXBpKGUscik7cmV0dXJuIGF3YWl0IHRoaXMuYWRkSXRlbXNUb1N0b3JhZ2UoZSxuKSx0aGlzLnBpcGVTZXJ2aWNlLmVtaXQoXCJnaF9pdGVtc19hZGRcIix7YXBwX2lkOmV9LG4pLG59YXN5bmMgdXBkYXRlSXRlbXMoZSx0KXtsZXQgcj10Lm1hcChlPT4oey4uLmUsZmllbGRzOiQyZjllYzMwZTJmZDY5NWEzJGV4cG9ydCQ0ODhlZGJiOTFlNGQxZjE3KGUuZmllbGRzKX0pKSxuPWF3YWl0IHRoaXMudXBkYXRlSXRlbXNBcGkoZSxyKTtyZXR1cm4gYXdhaXQgdGhpcy51cGRhdGVJdGVtc0luU3RvcmFnZShlLG4pfWFzeW5jIGRlbGV0ZUl0ZW1zKGUsdCl7cmV0dXJuIHRoaXMuZGVsZXRlSXRlbXNBcGkodCkudGhlbihhc3luYyB0PT5hd2FpdCB0aGlzLmRlbGV0ZUl0ZW1zRnJvbVN0b3JhZ2UoZSx0KSl9YXN5bmMgcmVzdG9yZUl0ZW1zKGUsdCl7bGV0IHI9dC5tYXAoZT0+KHtpdGVtX2lkOmUsdHJhc2g6ITF9KSksbj1hd2FpdCB0aGlzLnVwZGF0ZUl0ZW1zQXBpKGUscik7cmV0dXJuIGF3YWl0IHRoaXMudXBkYXRlSXRlbXNJblN0b3JhZ2UoZSxuKX1pdGVtTGlzdGVuZXJzKCl7dGhpcy5waXBlU2VydmljZS5vblJvb3QoXCJnaF9pdGVtc19nZXRcIix7fSxhc3luYyhlLHQpPT57aWYodCYmdC5hcHBfaWQpe2xldCBlPWF3YWl0IHRoaXMuZ2V0SXRlbXModC5hcHBfaWQpO2U/dGhpcy5waXBlU2VydmljZS5lbWl0KFwiZ2hfaXRlbXNfZ2V0XCIsdCxlKTp0aGlzLnBpcGVTZXJ2aWNlLmVtaXQoXCJnaF9pdGVtc19nZXRcIix0LFtdKX19KSx0aGlzLnBpcGVTZXJ2aWNlLm9uUm9vdChcImdoX2l0ZW1zX2FkZFwiLHt9LGFzeW5jKGUsdCk9PntpZih0JiZ0LmFwcF9pZCYmdC5pdGVtcyl7bGV0IGU9YXdhaXQgdGhpcy5hZGROZXdJdGVtcyh0LmFwcF9pZCx0Lml0ZW1zKTtlP3RoaXMucGlwZVNlcnZpY2UuZW1pdChcImdoX2l0ZW1zX2FkZFwiLHQsZSk6dGhpcy5waXBlU2VydmljZS5lbWl0KFwiZ2hfaXRlbXNfYWRkXCIsdCxbXSl9fSksdGhpcy5waXBlU2VydmljZS5vblJvb3QoXCJnaF9pdGVtc191cGRhdGVcIix7fSxhc3luYyhlLHQpPT57aWYodCYmdC5hcHBfaWQmJnQuaXRlbXMpe2xldCBlPWF3YWl0IHRoaXMudXBkYXRlSXRlbXModC5hcHBfaWQsdC5pdGVtcyk7ZT90aGlzLnBpcGVTZXJ2aWNlLmVtaXQoXCJnaF9pdGVtc191cGRhdGVcIix0LGUpOnRoaXMucGlwZVNlcnZpY2UuZW1pdChcImdoX2l0ZW1zX3VwZGF0ZVwiLHQsW10pfX0pLHRoaXMucGlwZVNlcnZpY2Uub25Sb290KFwiZ2hfaXRlbV9nZXRcIix7fSxhc3luYyhlLHQpPT57aWYodCYmdC5hcHBfaWQpe2xldCBlPShhd2FpdCB0aGlzLmdldEl0ZW1zKHQuYXBwX2lkKSkuZmluZChlPT5lLml0ZW1faWQ9PXQuaXRlbV9pZCk7dGhpcy5waXBlU2VydmljZS5lbWl0KFwiZ2hfaXRlbV9nZXRcIix0LGUpfX0pLHRoaXMucGlwZVNlcnZpY2Uub25Sb290KFwiZ2hfZmlsdGVyZWRfaXRlbXNfZ2V0XCIse30sYXN5bmMoZSx0KT0+e2lmKHQmJnQuZWxlbWVudF9hcHBfaWQpe2xldCBlPWF3YWl0IHRoaXMuZ2V0SXRlbXModC5lbGVtZW50X2FwcF9pZCkscj1hd2FpdCB0aGlzLnV0aWwuZ2V0RmlsdGVyZWRJdGVtcyhlLHQuZmlsdGVyc19saXN0LHQuZWxlbWVudF9hcHBfaWQsdC5hcHBfaWQsdC5pdGVtX2lkLHQuZmllbGRfZ3JvdXBlLHQuc2VhcmNoLHQuc2VhcmNoX3BhcmFtcyk7dGhpcy5waXBlU2VydmljZS5lbWl0KFwiZ2hfZmlsdGVyZWRfaXRlbXNfZ2V0XCIsdCxyKX19KSx0aGlzLnBpcGVTZXJ2aWNlLm9uUm9vdChcImdoX2ZpbHRlcl9pdGVtc1wiLHt9LGFzeW5jKGUsdCk9PntpZih0JiZ0Lml0ZW1zKXtsZXQgZT1hd2FpdCB0aGlzLnV0aWwuZ2V0RmlsdGVyZWRJdGVtcyh0Lml0ZW1zLHQuZmlsdGVyc19saXN0LHQuZWxlbWVudF9hcHBfaWQsdC5hcHBfaWQsdC5pdGVtX2lkLHQuZmllbGRfZ3JvdXBlLHQuc2VhcmNoLHQuc2VhcmNoX3BhcmFtcyk7dGhpcy5waXBlU2VydmljZS5lbWl0KFwiZ2hfZmlsdGVyX2l0ZW1zXCIsdCxlKX19KX19Y2xhc3MgJDgwY2I5YjA0MjFjNjgzZDgkZXhwb3J0JGIyMGU5ZTBmNmZmZDBjZTB7Y29uc3RydWN0b3IoZSx0LHIsbixpKXt0aGlzLnN0b3JhZ2U9ZSx0aGlzLnJlcT10LHRoaXMuYXBwUHJvY2Vzc29yPXIsdGhpcy5pdGVtUHJvY2Vzc29yPW4sdGhpcy5waXBlU2VydmljZT1pLHRoaXMuZmllbGRMaXN0ZW5lcnMoKX1kZWxldGVGaWVsZEFwaShlKXtyZXR1cm4gdGhpcy5yZXEucG9zdCh7dXJsOlwiL2FwaS9hcHAvZGVsZXRlLWZpZWxkXCIsZm9ybTp7ZmllbGRfaWQ6ZX19KX1hc3luYyB1cGRhdGVkRmllbGRBcGkoZSx0PXt9KXtsZXQgcj1hd2FpdCB0aGlzLmFwcFByb2Nlc3Nvci5nZXRBcHAoZSksbj17YXBwX2lkOmUsYXBwX25hbWU6ci5hcHBfbmFtZSxncm91cF9pZDpyLmdyb3VwX2lkLGljb246ci5pY29uLGZpZWxkX2xpc3Q6ci5maWVsZF9saXN0Lm1hcChlPT5lLmZpZWxkX2lkPT10LmZpZWxkX2lkP3suLi5lLC4uLnR9OmUpLHZpZXdzX2xpc3Q6ci52aWV3c19saXN0fTtyZXR1cm4gdGhpcy5hcHBQcm9jZXNzb3IudXBkYXRlQXBwKG4pfXNldEZpZWxkVmFsdWVBcGkoZSx0LHIsbil7bGV0IGk9W3tpdGVtX2lkOnQsZmllbGRzOlt7ZmllbGRfaWQ6cixmaWVsZF92YWx1ZTpufV19XTtyZXR1cm4gdGhpcy5pdGVtUHJvY2Vzc29yLnVwZGF0ZUl0ZW1zKGUsaSl9ZGVsZXRlRmllbGRJblN0b3JhZ2UoZSx0KXtsZXQgcj10aGlzLnN0b3JhZ2UuZ2V0QXBwKGUpO3JldHVybiByLmZpZWxkX2xpc3Q9ci5maWVsZF9saXN0LmZpbHRlcihlPT5lLmZpbGVfaWQhPXQpLHIuaXRlbXNfbGlzdD1yLml0ZW1zX2xpc3QubWFwKGU9PihlLmZpZWxkcz1lLmZpZWxkcy5maWx0ZXIoZT0+ZS5maWVsZF9pZCE9dCksZSkpLHRoaXMuc3RvcmFnZS51cGRhdGVBcHAociksITB9dXBkYXRlRmllbGRJblN0b3JhZ2UoZSx0KXtsZXQgcj10aGlzLnN0b3JhZ2UuZ2V0QXBwKGUpO3JldHVybiByLmZpZWxkX2xpc3Q9ci5maWVsZF9saXN0Lm1hcChlPT5lLmZpZWxkX2lkPT10LmZpZWxkX2lkP3suLi5lLC4uLnR9OmUpLHRoaXMuc3RvcmFnZS51cGRhdGVBcHAociksdH11cGRhdGVGaWVsZFZhbHVlKGUsdCxyLG4pe2xldCBpPXRoaXMuc3RvcmFnZS5nZXRBcHAoZSk7cmV0dXJuIGkuaXRlbXNfbGlzdC5mb3JFYWNoKGU9PntlLml0ZW1faWQ9PXQmJmUuZmllbGRzLmZvckVhY2godD0+e3QuZmllbGRfaWQ9PXImJih0LmZpZWxkX3ZhbHVlPW4saS5pdGVtc19vYmplY3RbZS5pdGVtX2lkXVt0LmZpZWxkX2lkXT10KX0pfSksdGhpcy5zdG9yYWdlLnVwZGF0ZUFwcChpKSxufWFzeW5jIGdldEZpZWxkKGUsdCl7bGV0IHI9YXdhaXQgdGhpcy5hcHBQcm9jZXNzb3IuZ2V0QXBwKGUpO2lmKCFyKXJldHVybiBudWxsO2ZvcihsZXQgZT0wO2U8ci5maWVsZF9saXN0Lmxlbmd0aDtlKyspaWYoci5maWVsZF9saXN0W2VdLmZpZWxkX2lkPT10KXJldHVybiByLmZpZWxkX2xpc3RbZV07cmV0dXJuIG51bGx9YXN5bmMgZ2V0RmllbGRJZEJ5TmFtZVNwYWNlKGUsdCl7bGV0IHI9YXdhaXQgdGhpcy5hcHBQcm9jZXNzb3IuZ2V0QXBwKGUpO2lmKCFyKXJldHVybiBudWxsO2ZvcihsZXQgZT0wO2U8ci5maWVsZF9saXN0Lmxlbmd0aDtlKyspaWYoci5maWVsZF9saXN0W2VdLm5hbWVfc3BhY2U9PXQpcmV0dXJuIHIuZmllbGRfbGlzdFtlXS5maWVsZF9pZDtyZXR1cm4gbnVsbH1hc3luYyBnZXRGaWVsZE1vZGVscyhlKXtsZXQgdD1hd2FpdCB0aGlzLmFwcFByb2Nlc3Nvci5nZXRBcHAoZSk7cmV0dXJuIHQ/dC5maWVsZF9saXN0Om51bGx9YXN5bmMgdXBkYXRlRmllbGQoZSx0KXtpZighZXx8IXQpcmV0dXJuO2xldCByPWF3YWl0IHRoaXMudXBkYXRlZEZpZWxkQXBpKGUsdCk7cmV0dXJuIHRoaXMudXBkYXRlRmllbGRJblN0b3JhZ2UoZSxyKX1hc3luYyBkZWxldGVGaWVsZChlLHQpe3JldHVybiBhd2FpdCB0aGlzLmRlbGV0ZUZpZWxkQXBpKHQpLHRoaXMuZGVsZXRlRmllbGRJblN0b3JhZ2UoZSx0KX1hc3luYyBnZXRGaWVsZFZhbHVlKGUsdCxyKXtsZXQgbj1udWxsLGk9YXdhaXQgdGhpcy5hcHBQcm9jZXNzb3IuZ2V0QXBwKGUpO3RyeXtuPWkuaXRlbXNfb2JqZWN0W3RdW3JdLmZpZWxkX3ZhbHVlfWNhdGNoKGUpe31yZXR1cm4gbn1hc3luYyBzZXRGaWVsZFZhbHVlKGUsdCxyLG4pe2lmKGUmJnQmJnIpcmV0dXJuIGF3YWl0IHRoaXMuc2V0RmllbGRWYWx1ZUFwaShlLHQscixuKSx0aGlzLnVwZGF0ZUZpZWxkVmFsdWUoZSx0LHIsbil9ZmllbGRMaXN0ZW5lcnMoKXt0aGlzLnBpcGVTZXJ2aWNlLm9uUm9vdChcImdoX3ZhbHVlX2dldFwiLHt9LGFzeW5jKGUsdCk9PntpZih0LmFwcF9pZCYmdC5pdGVtX2lkJiZ0LmZpZWxkX2lkKXtsZXQgZT1hd2FpdCB0aGlzLmdldEZpZWxkVmFsdWUodC5hcHBfaWQsdC5pdGVtX2lkLHQuZmllbGRfaWQpO3RoaXMucGlwZVNlcnZpY2UuZW1pdChcImdoX3ZhbHVlX2dldFwiLHQsZSl9fSksdGhpcy5waXBlU2VydmljZS5vblJvb3QoXCJnaF92YWx1ZV9zZXRcIix7fSxhc3luYyhlLHQpPT57dC5pdGVtX2lkJiYodGhpcy5zZXRGaWVsZFZhbHVlKHQuYXBwX2lkLHQuaXRlbV9pZCx0LmZpZWxkX2lkLHQubmV3X3ZhbHVlKSxkZWxldGUgdC5uZXdfdmFsdWUpfSksdGhpcy5waXBlU2VydmljZS5vblJvb3QoXCJnaF9tb2RlbF9nZXRcIix7fSxhc3luYyhlLHQpPT57dHJ5e2xldCBlPWF3YWl0IHRoaXMuZ2V0RmllbGQodC5hcHBfaWQsdC5maWVsZF9pZCk7dGhpcy5waXBlU2VydmljZS5lbWl0KFwiZ2hfbW9kZWxfZ2V0XCIsdCxlKX1jYXRjaChlKXtjb25zb2xlLmxvZyhcIkZpZWxkIG1vZGVsOiBcIixlKX19KSx0aGlzLnBpcGVTZXJ2aWNlLm9uUm9vdChcImdoX21vZGVsX3VwZGF0ZVwiLHt9LGFzeW5jKGUsdCk9PntsZXQgcj1hd2FpdCB0aGlzLnVwZGF0ZUZpZWxkKHQuYXBwX2lkLHQuZmllbGRfbW9kZWwpO3RoaXMucGlwZVNlcnZpY2UuZW1pdChcImdoX21vZGVsX3VwZGF0ZVwiLHthcHBfaWQ6dC5hcHBfaWQsZmllbGRfaWQ6dC5maWVsZF9pZH0scil9KSx0aGlzLnBpcGVTZXJ2aWNlLm9uUm9vdChcImdoX21vZGVsc19nZXRcIix7fSxhc3luYyhlLHQpPT57bGV0IHI9YXdhaXQgdGhpcy5nZXRGaWVsZE1vZGVscyh0LmFwcF9pZCk7dGhpcy5waXBlU2VydmljZS5lbWl0KFwiZ2hfbW9kZWxzX2dldFwiLHQscil9KSx0aGlzLnBpcGVTZXJ2aWNlLm9uUm9vdChcImdoX21vZGVsX2RlbGV0ZVwiLHt9LGFzeW5jKGUsdCk9PntsZXQgcj1hd2FpdCB0aGlzLmRlbGV0ZUZpZWxkKHQuYXBwX2lkLHQuZmllbGRfaWQpO3RoaXMucGlwZVNlcnZpY2UuZW1pdChcImdoX21vZGVsX2RlbGV0ZVwiLHQscil9KX19Y2xhc3MgJDNjYWE5MzgyNWY1NWFlMWYkZXhwb3J0JGE1MjQ1YzliMjM1NWQxZjh7Y29uc3RydWN0b3IoZSx0LHIsbil7dGhpcy5zdG9yYWdlPWUsdGhpcy5waXBlU2VydmljZT10LHRoaXMucmVxPXIsdGhpcy5hcHBQcm9jZXNzb3I9bn1hc3luYyB1cGxvYWRGaWxlQXBpKGUsdCxyKXt0cnl7bGV0IG49e1wiZmlsZS0wXCI6ZSxhcHBfaWQ6dCxpdGVtX2lkOnJ9O3JldHVybiBhd2FpdCB0aGlzLnJlcS5wb3N0KHt1cmw6XCIvZmlsZS9mb3JtdXBsb2FkXCIsZm9ybTpufSl9Y2F0Y2goZSl7cmV0dXJuIGNvbnNvbGUubG9nKGUpLG51bGx9fWFzeW5jIHVwbG9hZEZpbGVGcm9tU3RyaW5nQXBpKGUpe3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5yZXEucG9zdCh7dXJsOlwiL2ZpbGUvdXBsb2FkXCIsZm9ybTp7ZmlsZTpKU09OLnN0cmluZ2lmeShlKX19KX1jYXRjaChlKXtyZXR1cm4gY29uc29sZS5sb2coZSksbnVsbH19YXN5bmMgdXBkYXRlRmlsZUZyb21TdHJpbmdBcGkoZSx0LHIsbixpLGEsbyl7dHJ5e2xldCBzPXtmaWxlX25hbWU6cixleHRlbnNpb246bixmaWxlX2lkOnQsZm9ybWF0Omksc291cmNlOmUsYWx0OmEsdGl0bGU6b307cmV0dXJuIGF3YWl0IHRoaXMucmVxLnBvc3Qoe3VybDpcIi9maWxlL3VwZGF0ZVwiLGZvcm06e2ZpbGU6SlNPTi5zdHJpbmdpZnkocyl9fSl9Y2F0Y2goZSl7cmV0dXJuIGNvbnNvbGUubG9nKGUpLG51bGx9fWFzeW5jIGR1cGxpY2F0ZUZpbGVBcGkoZSl7cmV0dXJuIHRoaXMucmVxLnBvc3Qoe3VybDpcIi9hcGkvbmV3L2ZpbGUvZHVwbGljYXRlXCIsaGVhZGVyczp7XCJDb250ZW50LVR5cGVcIjpcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwifSxmb3JtOntmaWxlczpKU09OLnN0cmluZ2lmeShlKX19KX1hc3luYyBkb3dubG9hZEZpbGVGcm9tU3RyaW5nKGUsdCl7aWYoIWF3YWl0IHRoaXMuaXNGaWxlRXhpc3RzKGUsdCkpcmV0dXJuITE7e2xldCByPWF3YWl0IHRoaXMuZ2V0RmlsZShlLHQpLG49YXdhaXQgdGhpcy5yZXEuZ2V0KHt1cmw6ci51cmwrXCI/dGltZXN0YW1wPVwiK3IubGFzdF91cGRhdGUsZXh0ZXJuYWxSZXNvdXJjZTohMH0pO3JldHVybntmaWxlOnIsZGF0YTpuLHR5cGU6XCJmaWxlXCJ9fX1hc3luYyBkdXBsaWNhdGVGaWxlKGUpe2xldCB0PWF3YWl0IHRoaXMuZHVwbGljYXRlRmlsZUFwaShlKTtyZXR1cm4gdC5mb3JFYWNoKGU9Pnt0aGlzLmFkZEZpbGVUb1N0b3JhZ2UoZS5hcHBfaWQsZSl9KSx0fWFzeW5jIGRlbGV0ZUZpbGVBcGkoZSl7dHJ5e3JldHVybiBhd2FpdCB0aGlzLnJlcS5nZXQoe3VybDpgL2ZpbGUvZGVsZXRlP2ZpbGVfaWQ9JHtlfWB9KX1jYXRjaChlKXtyZXR1cm4gY29uc29sZS5sb2coZSksbnVsbH19YWRkRmlsZVRvU3RvcmFnZShlLHQpe2xldCByPXRoaXMuc3RvcmFnZS5nZXRBcHAoZSk7ciYmKHIuZmlsZV9saXN0LnB1c2godCksdGhpcy5zdG9yYWdlLnVwZGF0ZUFwcChyKSx0aGlzLnBpcGVTZXJ2aWNlLmVtaXQoXCJnaF9maWxlX3VwbG9hZFwiLHthcHBfaWQ6ZSxpdGVtX2lkOnQuaXRlbV9pZCxmaWxlX2lkOnQuZmlsZV9pZH0sdCkpfWFkZEZpbGVzVG9TdG9yYWdlKGUsdCl7bGV0IHI9dGhpcy5zdG9yYWdlLmdldEFwcChlKTtyJiYoci5maWxlX2xpc3QucHVzaCguLi50KSx0aGlzLnN0b3JhZ2UudXBkYXRlQXBwKHIpLHQuZm9yRWFjaCh0PT57dGhpcy5waXBlU2VydmljZS5lbWl0KFwiZ2hfZmlsZV91cGxvYWRcIix7YXBwX2lkOmUsaXRlbV9pZDp0Lml0ZW1faWQsZmlsZV9pZDp0LmZpbGVfaWR9LHQpfSkpfWRlbGV0ZUZpbGVGcm9tU3RvcmFnZShlLHQpe2xldCByPXRoaXMuc3RvcmFnZS5nZXRBcHAodCk7aWYocil7bGV0IHQ7ci5maWxlX2xpc3Q9ci5maWxlX2xpc3QuZmlsdGVyKHI9PnIuZmlsZV9pZCE9ZXx8KHQ9ciwhMSkpLHRoaXMuc3RvcmFnZS51cGRhdGVBcHAociksdGhpcy5waXBlU2VydmljZS5lbWl0KFwiZ2hfZmlsZV9kZWxldGVcIix7ZmlsZV9pZDplfSx0KX19dXBkYXRlRmlsZUluU3RvcmFnZShlLHQscil7bGV0IG49dGhpcy5zdG9yYWdlLmdldEFwcCh0KTtuJiYobi5maWxlX2xpc3Q9bi5maWxlX2xpc3QubWFwKHQ9PnQuZmlsZV9pZD09ZT9yOnQpLHRoaXMuc3RvcmFnZS51cGRhdGVBcHAobiksdGhpcy5waXBlU2VydmljZS5lbWl0KFwiZ2hfZmlsZV91cGRhdGVcIix7ZmlsZV9pZDplfSkpfWFzeW5jIGdldEZpbGUoZSx0KXtsZXQgcj1hd2FpdCB0aGlzLmFwcFByb2Nlc3Nvci5nZXRBcHAoZSk7cmV0dXJuIG5ldyBQcm9taXNlKChlLG4pPT57bGV0IGk9ci5maWxlX2xpc3QuZmluZChlPT5lLmZpbGVfaWQ9PXQpO2UoaXx8XCJcIil9KX1hc3luYyBnZXRGaWxlcyhlLHQ9W10pe2xldCByPWF3YWl0IHRoaXMuYXBwUHJvY2Vzc29yLmdldEFwcChlKTtyZXR1cm4gbmV3IFByb21pc2UoKGUsbik9PntsZXQgaT1yLmZpbGVfbGlzdC5maWx0ZXIoZT0+dC5zb21lKHQ9PnQ9PWUuZmlsZV9pZCkpO2UoaXx8XCJcIil9KX1hc3luYyB1cGxvYWRGaWxlKGUsdCxyKXtsZXQgbj1hd2FpdCB0aGlzLnVwbG9hZEZpbGVBcGkoZSx0LHIpO3JldHVybiB0aGlzLmFkZEZpbGVUb1N0b3JhZ2UodCxuKSxufWFzeW5jIHVwbG9hZEZpbGVGcm9tU3RyaW5nKGUpe2xldCB0PWF3YWl0IHRoaXMudXBsb2FkRmlsZUZyb21TdHJpbmdBcGkoZSk7cmV0dXJuIHRoaXMuYWRkRmlsZVRvU3RvcmFnZSh0LmFwcF9pZCx0KSx0fWFzeW5jIHVwZGF0ZUZpbGVGcm9tU3RyaW5nKGUsdCxyLG4saSxhLG8pe2xldCBzPWF3YWl0IHRoaXMudXBkYXRlRmlsZUZyb21TdHJpbmdBcGkoZSx0LHIsbixpLGEsbyk7cmV0dXJuIHRoaXMudXBkYXRlRmlsZUluU3RvcmFnZSh0LHMuYXBwX2lkLHMpLHN9YXN5bmMgZGVsZXRlRmlsZShlLHQpe3JldHVybiBhd2FpdCB0aGlzLmRlbGV0ZUZpbGVBcGkoZSksdGhpcy5kZWxldGVGaWxlRnJvbVN0b3JhZ2UoZSx0KSwhMH1hc3luYyBpc0ZpbGVFeGlzdHMoZSx0KXtsZXQgcj0vXihodHRwcz86XFwvXFwvKT8oW1xcZGEtelxcLi1dKylcXC4oW2EtelxcLl17Miw2fSkoW1xcL1xcdyBcXC4tXSopKlxcLz8kLztpZighdClyZXR1cm4hMTt7bGV0IG49YXdhaXQgdGhpcy5nZXRGaWxlKGUsdCk7cmV0dXJuISFuJiZyLnRlc3Qobi51cmwpfX19Y2xhc3MgJGU5OTcyNGMyZGJmMTBiZTIkZXhwb3J0JGQzOWQyYWRiYmNiMzVmMDF7Y29uc3RydWN0b3IoZSx0KXt0aGlzLnJlcT1lLHRoaXMucGlwZVNlcnZpY2U9dH1jcmVhdGVEb2N1bWVudChlKXtyZXR1cm4gdGhpcy5lbWl0RG9jdW1lbnRJbnNlcnQoZSksdGhpcy5yZXEucG9zdCh7dXJsOlwiL2FwaS9uZXcvZG9jdW1lbnQvaW5zZXJ0LW9uZVwiLGhlYWRlcnM6e1wiQ29udGVudC1UeXBlXCI6XCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIn0sZm9ybTp7ZG9jdW1lbnQ6SlNPTi5zdHJpbmdpZnkoZSl9fSl9ZW1pdERvY3VtZW50SW5zZXJ0KGUpe2xldCB0PVwic3RyaW5nXCI9PXR5cGVvZiBlLmRhdGE/SlNPTi5wYXJzZShlLmRhdGEpOmUuZGF0YTt0aGlzLnBpcGVTZXJ2aWNlLmVtaXQoXCJnaF9kb2N1bWVudF9pbnNlcnRfb25lXCIse2FwcF9pZDplLmFwcF9pZCxpdGVtX2lkOmUuaXRlbV9pZCxlbGVtZW50X2lkOmUuZWxlbWVudF9pZH0sdCl9Z2V0RG9jdW1lbnQoZSl7cmV0dXJuIHRoaXMucmVxLnBvc3Qoe3VybDpcIi9hcGkvbmV3L2RvY3VtZW50L2ZpbmQtb25lXCIsaGVhZGVyczp7XCJDb250ZW50LVR5cGVcIjpcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwifSxmb3JtOntkb2N1bWVudDpKU09OLnN0cmluZ2lmeShlKX19KX1nZXREb2N1bWVudHMoZSl7cmV0dXJuIHRoaXMucmVxLnBvc3Qoe3VybDpcIi9hcGkvbmV3L2RvY3VtZW50L2ZpbmRcIixoZWFkZXJzOntcIkNvbnRlbnQtVHlwZVwiOlwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCJ9LGZvcm06e2RvY3VtZW50OkpTT04uc3RyaW5naWZ5KGUpfX0pfWRlbGV0ZURvY3VtZW50KGUpe3JldHVybiB0aGlzLnJlcS5wb3N0KHt1cmw6XCIvYXBpL25ldy9kb2N1bWVudC9yZW1vdmUtb25lXCIsaGVhZGVyczp7XCJDb250ZW50LVR5cGVcIjpcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwifSxmb3JtOntkb2N1bWVudDpKU09OLnN0cmluZ2lmeShlKX19KX19Y2xhc3MgJDEzYTc0OGIxOTY1NGVmMjQkZXhwb3J0JGQ4MDhkOGE2NzYzY2U0MDd7Y29uc3RydWN0b3IoZSl7dGhpcy5ndWRodWI9ZX1hc3luYyBnZXRJbnRlcnByZXRhdGlvbk9iaihlLHQscixuLGksYSl7dmFyIG89W10scz10LmRhdGFfbW9kZWwuaW50ZXJwcmV0YXRpb24uZmluZChmdW5jdGlvbihlKXtyZXR1cm4gZS5zcmM9PXJ9KXx8dC5kYXRhX21vZGVsLmludGVycHJldGF0aW9uLmZpbmQoZnVuY3Rpb24oZSl7cmV0dXJuXCJ0YWJsZVwiPT1lLnNyY30pfHx7aWQ6XCJkZWZhdWx0XCJ9O2lmKGUuZGF0YV9tb2RlbCYmZS5kYXRhX21vZGVsLmludGVycHJldGF0aW9uKXtmb3IodmFyIGw9MDtsPGUuZGF0YV9tb2RlbC5pbnRlcnByZXRhdGlvbi5sZW5ndGg7bCsrKShlLmRhdGFfbW9kZWwuaW50ZXJwcmV0YXRpb25bbF0uc3JjPT1yfHxlLmRhdGFfbW9kZWwuaW50ZXJwcmV0YXRpb25bbF0uc3JjPT1uKSYmby5wdXNoKGUuZGF0YV9tb2RlbC5pbnRlcnByZXRhdGlvbltsXSk7Zm9yKHZhciBsPTA7bDxvLmxlbmd0aDtsKyspaWYob1tsXS5zZXR0aW5ncyYmb1tsXS5zZXR0aW5ncy5jb25kaXRpb25fZmlsdGVyJiZvW2xdLnNldHRpbmdzLmZpbHRlcnNfbGlzdC5sZW5ndGg+MCl7bGV0IGU9YXdhaXQgZ3VkaHViLmdldEl0ZW0oYSxpKTtpZihlJiZndWRodWIuZmlsdGVyKFtlXSxvW2xdLnNldHRpbmdzLmZpbHRlcnNfbGlzdCkubGVuZ3RoPjApe3M9b1tsXTticmVha319ZWxzZSBzPWd1ZGh1Yi5tZXJnZU9iamVjdHMocyxvW2xdKX1yZXR1cm4gc31nZXRJbnRlcnByZXRhdGlvbihlLHQscixuLGksYSxvKXtsZXQgcz10aGlzO3JldHVybiBuZXcgUHJvbWlzZShhc3luYyhsLHUpPT57dmFyIGM9dCYmdC5kYXRhX3R5cGU/dC5kYXRhX3R5cGU6cjtjP2d1ZGh1Yi5naGNvbnN0cnVjdG9yLmdldEluc3RhbmNlKGMpLnRoZW4oYXN5bmMgZnVuY3Rpb24ocil7aWYocil7dmFyIHA9YXdhaXQgcy5nZXRJbnRlcnByZXRhdGlvbk9iaih0LHIuZ2V0VGVtcGxhdGUoKS5tb2RlbCxuLG8saSxhKTtyLmdldEludGVycHJldGF0aW9uKGUscC5pZCxjLHQsaSxhKS50aGVuKGZ1bmN0aW9uKGUpe2woZ3VkaHViLm1lcmdlT2JqZWN0cyhlLHApKX0sZnVuY3Rpb24oZSl7dSgpfSl9fSxmdW5jdGlvbihlKXt9KTpjb25zb2xlLmVycm9yKFwiR2V0IEludGVycHJldGF0aW9uOiBkYXRhX3R5cGUgaXMgdW5kZWZpbmVkXCIscix0KX0pfWFzeW5jIGdldEludGVycHJldGF0aW9uQnlJZChlLHQscixuLGk9bnVsbCxhPW51bGwpe2xldCBvPW51bGw9PWk/YXdhaXQgdGhpcy5ndWRodWIuZ2V0RmllbGRWYWx1ZShlLHQscik6aSxzPW51bGw9PWE/YXdhaXQgdGhpcy5ndWRodWIuZ2V0RmllbGQoZSxyKTphO2lmKG51bGw9PXMpcmV0dXJuXCJcIjtsZXQgbD1hd2FpdCB0aGlzLmd1ZGh1Yi5naGNvbnN0cnVjdG9yLmdldEluc3RhbmNlKHMuZGF0YV90eXBlKSx1PWF3YWl0IGwuZ2V0SW50ZXJwcmV0YXRpb24obyxuLHMuZGF0YV90eXBlLHMsdCxlKTtyZXR1cm5cIjxzcGFuPm5vIGludGVycHJldGF0aW9uPC9zcGFuPlwiPT11Lmh0bWw/bzp1Lmh0bWx9fXZhciAkNXhvekI9cGFyY2VsUmVxdWlyZShcIjV4b3pCXCIpO2Z1bmN0aW9uICQzMWM3ODBjNDIwMTEyYjdlJGV4cG9ydCQ5MjBlMWU2YmVhMWM4MjgoZSx0KXtzd2l0Y2godC5hcGkpe2Nhc2VcIi9pdGVtcy91cGRhdGVcIjpjb25zb2xlLmxvZyhcIi9pdGVtcy91cGRhdGUgLSBcIix0KSxlLml0ZW1Qcm9jZXNzb3IudXBkYXRlSXRlbXNJblN0b3JhZ2UodC5hcHBfaWQsdC5yZXNwb25zZSk7YnJlYWs7Y2FzZVwiL2l0ZW1zL2FkZFwiOmNvbnNvbGUubG9nKFwiL2l0ZW1zL2FkZCAtIFwiLHQpLGUuaXRlbVByb2Nlc3Nvci5hZGRJdGVtc1RvU3RvcmFnZSh0LmFwcF9pZCx0LnJlc3BvbnNlKTticmVhaztjYXNlXCIvaXRlbXMvZGVsZXRlXCI6Y29uc29sZS5sb2coXCIvaXRlbXMvZGVsZXRlIC0gXCIsdCksZS5pdGVtUHJvY2Vzc29yLmRlbGV0ZUl0ZW1zRnJvbVN0b3JhZ2UodC5hcHBfaWQsdC5yZXNwb25zZSk7YnJlYWs7Y2FzZVwiL2FwcC91cGRhdGVcIjpjb25zb2xlLmxvZyhcIi9hcHAvdXBkYXRlIC0gXCIsdCksZS5hcHBQcm9jZXNzb3IudXBkYXRlQXBwRmllbGRzQW5kVmlld3ModC5yZXNwb25zZSk7YnJlYWs7Y2FzZVwiL2ZpbGUvZGVsZXRlXCI6Y29uc29sZS5sb2coXCJmaWxlL2RlbGV0ZSAtIFwiLHQpLGUuZmlsZU1hbmFnZXIuZGVsZXRlRmlsZUZyb21TdG9yYWdlKHQucmVzcG9uc2UuZmlsZV9pZCx0LmFwcF9pZCk7YnJlYWs7Y2FzZVwiL2ZpbGUvdXBsb2FkXCI6Y29uc29sZS5sb2coXCJmaWxlL3VwbG9hZCAtIFwiLHQpLGUuZmlsZU1hbmFnZXIuYWRkRmlsZVRvU3RvcmFnZSh0LmFwcF9pZCx0LnJlc3BvbnNlKTticmVhaztjYXNlXCIvZmlsZS9mb3JtdXBsb2FkXCI6Y29uc29sZS5sb2coXCJmaWxlL2Zvcm11cGxvYWQgLSBcIix0KTticmVhaztjYXNlXCIvZmlsZS91cGRhdGVcIjplLmZpbGVNYW5hZ2VyLnVwZGF0ZUZpbGVJblN0b3JhZ2UodC5yZXNwb25zZS5maWxlX2lkLHQucmVzcG9uc2UuYXBwX2lkLHQucmVzcG9uc2UpLGNvbnNvbGUubG9nKFwiZmlsZS91cGRhdGUgLSBcIix0KTticmVhaztjYXNlXCIvbmV3L2ZpbGUvZHVwbGljYXRlXCI6ZS5maWxlTWFuYWdlci5hZGRGaWxlc1RvU3RvcmFnZSh0LmFwcF9pZCx0LnJlc3BvbnNlKSxjb25zb2xlLmxvZyhcIm5ldy9maWxlL2R1cGxpY2F0ZSAtIFwiLHQpO2JyZWFrO2Nhc2VcIi9hcGkvbmV3L2RvY3VtZW50L2luc2VydC1vbmVcIjplLmRvY3VtZW50TWFuYWdlci5lbWl0RG9jdW1lbnRJbnNlcnQodC5yZXNwb25zZSksY29uc29sZS5sb2coXCIvYXBpL25ldy9kb2N1bWVudC9pbnNlcnQtb25lIC0gXCIsdCk7YnJlYWs7Y2FzZVwiL3dzL2VtaXQtdG8tdXNlclwiOmNvbnNvbGUubG9nKFwiL3dzL2VtaXQtdG8tdXNlciAtIFwiLHQpO2JyZWFrO2Nhc2VcIi93cy9icm9hZGNhc3QtdG8tYXBwLXN1YnNjcmliZXJzXCI6Y29uc29sZS5sb2coXCIvd3MvYnJvYWRjYXN0LXRvLWFwcC1zdWJzY3JpYmVycyAtIFwiLHQpO2xldCByPUpTT04ucGFyc2UodC5yZXNwb25zZSk7aWYoIXIuZGF0YV90eXBlKXJldHVybjtlLmdoY29uc3RydWN0b3IuZ2V0SW5zdGFuY2Uoci5kYXRhX3R5cGUpLnRoZW4oZT0+e2Uub25NZXNzYWdlKHQuYXBwX2lkLHQudXNlcl9pZCxyKX0pO2JyZWFrO2RlZmF1bHQ6Y29uc29sZS53YXJuKFwiV0VCU09DS0VUUyBpcyBub3QgcHJvY2VzcyB0aGlzIEFQSTpcIix0LmFwaSl9fWNsYXNzICQ4YTcxZWUyZGY5MDc0ZWYyJGV4cG9ydCRiMWE1MWEzMGVmMWY3MWVie2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5yZXE9dCx0aGlzLmd1ZGh1Yj1lfWFzeW5jIGNyZWF0ZUdyb3VwQXBpKGUpe3RyeXtsZXQgdD17dG9rZW46YXdhaXQgdGhpcy5ndWRodWIuYXV0aC5nZXRUb2tlbigpLGdyb3VwX25hbWU6ZX07cmV0dXJuIGF3YWl0IHRoaXMucmVxLnBvc3Qoe3VybDpcIi9hcGkvc2hhcmluZy1ncm91cC9jcmVhdGUtZ3JvdXBcIixmb3JtOnR9KX1jYXRjaChlKXtyZXR1cm4gY29uc29sZS5sb2coZSksbnVsbH19YXN5bmMgdXBkYXRlR3JvdXBBcGkoZSx0KXt0cnl7bGV0IHI9e3Rva2VuOmF3YWl0IHRoaXMuZ3VkaHViLmF1dGguZ2V0VG9rZW4oKSxncm91cF9uYW1lOnQsZ3JvdXBfaWQ6ZX07cmV0dXJuIGF3YWl0IHRoaXMucmVxLnBvc3Qoe3VybDpcIi9hcGkvc2hhcmluZy1ncm91cC91cGRhdGUtZ3JvdXBcIixmb3JtOnJ9KX1jYXRjaChlKXtyZXR1cm4gY29uc29sZS5sb2coZSksbnVsbH19YXN5bmMgZGVsZXRlR3JvdXBBcGkoZSl7dHJ5e2xldCB0PXt0b2tlbjphd2FpdCB0aGlzLmd1ZGh1Yi5hdXRoLmdldFRva2VuKCksZ3JvdXBfaWQ6ZX07cmV0dXJuIGF3YWl0IHRoaXMucmVxLnBvc3Qoe3VybDpcIi9hcGkvc2hhcmluZy1ncm91cC9kZWxldGUtZ3JvdXBcIixmb3JtOnR9KX1jYXRjaChlKXtyZXR1cm4gY29uc29sZS5sb2coZSksbnVsbH19YXN5bmMgYWRkVXNlclRvR3JvdXBBcGkoZSx0LHIpe3RyeXtsZXQgbj17dG9rZW46YXdhaXQgdGhpcy5ndWRodWIuYXV0aC5nZXRUb2tlbigpLGdyb3VwX2lkOmUsdXNlcl9pZDp0LGdyb3VwX3Blcm1pc3Npb246cn07cmV0dXJuIGF3YWl0IHRoaXMucmVxLnBvc3Qoe3VybDpcIi9hcGkvc2hhcmluZy1ncm91cC9hZGQtdXNlci10by1ncm91cFwiLGZvcm06bn0pfWNhdGNoKGUpe3JldHVybiBjb25zb2xlLmxvZyhlKSxudWxsfX1hc3luYyBnZXRVc2Vyc0J5R3JvdXBBcGkoZSl7dHJ5e2xldCB0PXt0b2tlbjphd2FpdCB0aGlzLmd1ZGh1Yi5hdXRoLmdldFRva2VuKCksZ3JvdXBfaWQ6ZX07cmV0dXJuIGF3YWl0IHRoaXMucmVxLnBvc3Qoe3VybDpcIi9hcGkvc2hhcmluZy1ncm91cC9nZXQtdXNlcnMtYnktZ3JvdXBcIixmb3JtOnR9KX1jYXRjaChlKXtyZXR1cm4gY29uc29sZS5sb2coZSksbnVsbH19YXN5bmMgdXBkYXRlVXNlckluR3JvdXBBcGkoZSx0LHIpe3RyeXtsZXQgbj17dG9rZW46YXdhaXQgdGhpcy5ndWRodWIuYXV0aC5nZXRUb2tlbigpLHVzZXJfaWQ6ZSxncm91cF9pZDp0LGdyb3VwX3Blcm1pc3Npb246cn07cmV0dXJuIGF3YWl0IHRoaXMucmVxLnBvc3Qoe3VybDpcIi9hcGkvc2hhcmluZy1ncm91cC91cGRhdGUtdXNlci1pbi1ncm91cFwiLGZvcm06bn0pfWNhdGNoKGUpe3JldHVybiBjb25zb2xlLmxvZyhlKSxudWxsfX1hc3luYyBkZWxldGVVc2VyRnJvbUdyb3VwQXBpKGUsdCl7dHJ5e2xldCByPXt0b2tlbjphd2FpdCB0aGlzLmd1ZGh1Yi5hdXRoLmdldFRva2VuKCksdXNlcl9pZDplLGdyb3VwX2lkOnR9O3JldHVybiBhd2FpdCB0aGlzLnJlcS5wb3N0KHt1cmw6XCIvYXBpL3NoYXJpbmctZ3JvdXAvZGVsZXRlLXVzZXItZnJvbS1ncm91cFwiLGZvcm06cn0pfWNhdGNoKGUpe3JldHVybiBjb25zb2xlLmxvZyhlKSxudWxsfX1hc3luYyBnZXRHcm91cHNCeVVzZXJBcGkoZSl7dHJ5e2xldCB0PXt0b2tlbjphd2FpdCB0aGlzLmd1ZGh1Yi5hdXRoLmdldFRva2VuKCksdXNlcl9pZDplfTtyZXR1cm4gYXdhaXQgdGhpcy5yZXEucG9zdCh7dXJsOlwiL2FwaS9zaGFyaW5nLWdyb3VwL2dldC1ncm91cHMtYnktdXNlclwiLGZvcm06dH0pfWNhdGNoKGUpe3JldHVybiBjb25zb2xlLmxvZyhlKSxudWxsfX19Y2xhc3MgJDUzYzNiN2FhNjg5ZDI5YTkkZXhwb3J0JGRhM2QyYWIxOTAzY2IxODV7Y29uc3RydWN0b3IoZSx0KXt0aGlzLnJlcT10LHRoaXMuZ3VkaHViPWV9YXN5bmMgYWRkQXBwVG9Hcm91cEFwaShlLHQscil7dHJ5e2xldCBuPXt0b2tlbjphd2FpdCB0aGlzLmd1ZGh1Yi5hdXRoLmdldFRva2VuKCksYXBwX2lkOmUsZ3JvdXBfaWQ6dCxhcHBfcGVybWlzc2lvbjpyfTtyZXR1cm4gYXdhaXQgdGhpcy5yZXEucG9zdCh7dXJsOlwiL2FwaS9zaGFyaW5nLWdyb3VwL2FkZC1hcHAtdG8tZ3JvdXBcIixmb3JtOm59KX1jYXRjaChlKXtyZXR1cm4gY29uc29sZS5sb2coZSksbnVsbH19YXN5bmMgZ2V0QXBwc0J5R3JvdXBBcGkoZSl7dHJ5e2xldCB0PXt0b2tlbjphd2FpdCB0aGlzLmd1ZGh1Yi5hdXRoLmdldFRva2VuKCksZ3JvdXBfaWQ6ZX07cmV0dXJuIGF3YWl0IHRoaXMucmVxLnBvc3Qoe3VybDpcIi9hcGkvc2hhcmluZy1ncm91cC9nZXQtYXBwcy1ieS1ncm91cFwiLGZvcm06dH0pfWNhdGNoKGUpe3JldHVybiBjb25zb2xlLmxvZyhlKSxudWxsfX1hc3luYyB1cGRhdGVBcHBJbkdyb3VwQXBpKGUsdCxyKXt0cnl7bGV0IG49e3Rva2VuOmF3YWl0IHRoaXMuZ3VkaHViLmF1dGguZ2V0VG9rZW4oKSxncm91cF9pZDp0LGFwcF9pZDplLGFwcF9wZXJtaXNzaW9uOnJ9O3JldHVybiBhd2FpdCB0aGlzLnJlcS5wb3N0KHt1cmw6XCIvYXBpL3NoYXJpbmctZ3JvdXAvdXBkYXRlLWFwcC1pbi1ncm91cFwiLGZvcm06bn0pfWNhdGNoKGUpe3JldHVybiBjb25zb2xlLmxvZyhlKSxudWxsfX1hc3luYyBkZWxldGVBcHBGcm9tR3JvdXBBcGkoZSx0LHIpe3RyeXtsZXQgbj17dG9rZW46YXdhaXQgdGhpcy5ndWRodWIuYXV0aC5nZXRUb2tlbigpLGdyb3VwX2lkOnQsYXBwX2lkOmUsYXBwX3Blcm1pc3Npb246cn07cmV0dXJuIGF3YWl0IHRoaXMucmVxLnBvc3Qoe3VybDpcIi9hcGkvc2hhcmluZy1ncm91cC9kZWxldGUtYXBwLWZyb20tZ3JvdXBcIixmb3JtOm59KX1jYXRjaChlKXtyZXR1cm4gY29uc29sZS5sb2coZSksbnVsbH19YXN5bmMgZ2V0R3JvdXBzQnlBcHBBcGkoZSl7dHJ5e2xldCB0PXt0b2tlbjphd2FpdCB0aGlzLmd1ZGh1Yi5hdXRoLmdldFRva2VuKCksYXBwX2lkOmV9O3JldHVybiBhd2FpdCB0aGlzLnJlcS5wb3N0KHt1cmw6XCIvYXBpL3NoYXJpbmctZ3JvdXAvZ2V0LWdyb3Vwcy1ieS1hcHBcIixmb3JtOnR9KX1jYXRjaChlKXtyZXR1cm4gY29uc29sZS5sb2coZSksbnVsbH19fWNsYXNzICQzMjhlNzI3OTZjMTZkMTg5JGV4cG9ydCRhZjFkZDk4YTUyZGMzODhje2NvbnN0cnVjdG9yKGUsdCxyKXt0aGlzLnJlcT10LHRoaXMuZ3VkaHViPWUsdGhpcy5waXBlU2VydmljZT1yLHRoaXMuZ3JvdXBNYW5hZ2VyPW5ldyAkOGE3MWVlMmRmOTA3NGVmMiRleHBvcnQkYjFhNTFhMzBlZjFmNzFlYihlLHQpLHRoaXMuYXBwR3JvdXBTaGFyaW5nPW5ldyAkNTNjM2I3YWE2ODlkMjlhOSRleHBvcnQkZGEzZDJhYjE5MDNjYjE4NShlLHQpfWNyZWF0ZUdyb3VwKGUpe3JldHVybiB0aGlzLmdyb3VwTWFuYWdlci5jcmVhdGVHcm91cEFwaShlKX11cGRhdGVHcm91cChlLHQpe3JldHVybiB0aGlzLmdyb3VwTWFuYWdlci51cGRhdGVHcm91cEFwaShlLHQpfWRlbGV0ZUdyb3VwKGUpe3JldHVybiB0aGlzLmdyb3VwTWFuYWdlci5kZWxldGVHcm91cEFwaShlKX1hc3luYyBhZGRVc2VyVG9Hcm91cChlLHQscil7bGV0IG49YXdhaXQgdGhpcy5ncm91cE1hbmFnZXIuYWRkVXNlclRvR3JvdXBBcGkoZSx0LHIpO3JldHVybiB0aGlzLnBpcGVTZXJ2aWNlLmVtaXQoXCJncm91cF9tZW1iZXJzX2FkZFwiLHthcHBfaWQ6XCJncm91cF9zaGFyaW5nXCJ9LG4pLG59Z2V0VXNlcnNCeUdyb3VwKGUpe3JldHVybiB0aGlzLmdyb3VwTWFuYWdlci5nZXRVc2Vyc0J5R3JvdXBBcGkoZSl9YXN5bmMgdXBkYXRlVXNlckluR3JvdXAoZSx0LHIpe2xldCBuPWF3YWl0IHRoaXMuZ3JvdXBNYW5hZ2VyLnVwZGF0ZVVzZXJJbkdyb3VwQXBpKGUsdCxyKTtyZXR1cm4gdGhpcy5waXBlU2VydmljZS5lbWl0KFwiZ3JvdXBfbWVtYmVyc191cGRhdGVcIix7YXBwX2lkOlwiZ3JvdXBfc2hhcmluZ1wifSxuKSxufWFzeW5jIGRlbGV0ZVVzZXJGcm9tR3JvdXAoZSx0KXtsZXQgcj1hd2FpdCB0aGlzLmdyb3VwTWFuYWdlci5kZWxldGVVc2VyRnJvbUdyb3VwQXBpKGUsdCk7cmV0dXJuIHRoaXMucGlwZVNlcnZpY2UuZW1pdChcImdyb3VwX21lbWJlcnNfZGVsZXRlXCIse2FwcF9pZDpcImdyb3VwX3NoYXJpbmdcIn0scikscn1nZXRHcm91cHNCeVVzZXIoZSl7cmV0dXJuIHRoaXMuZ3JvdXBNYW5hZ2VyLmdldEdyb3Vwc0J5VXNlckFwaShlKX1hZGRBcHBUb0dyb3VwKGUsdCxyKXtyZXR1cm4gdGhpcy5hcHBHcm91cFNoYXJpbmcuYWRkQXBwVG9Hcm91cEFwaShlLHQscil9Z2V0QXBwc0J5R3JvdXAoZSl7cmV0dXJuIHRoaXMuYXBwR3JvdXBTaGFyaW5nLmdldEFwcHNCeUdyb3VwQXBpKGUpfXVwZGF0ZUFwcEluR3JvdXAoZSx0LHIpe3JldHVybiB0aGlzLmFwcEdyb3VwU2hhcmluZy51cGRhdGVBcHBJbkdyb3VwQXBpKGUsdCxyKX1kZWxldGVBcHBGcm9tR3JvdXAoZSx0LHIpe3JldHVybiB0aGlzLmFwcEdyb3VwU2hhcmluZy5kZWxldGVBcHBGcm9tR3JvdXBBcGkoZSx0LHIpfWdldEdyb3Vwc0J5QXBwKGUpe3JldHVybiB0aGlzLmFwcEdyb3VwU2hhcmluZy5nZXRHcm91cHNCeUFwcEFwaShlKX19Y2xhc3MgJDNhOGM1MjQ4MjhlOTI3MTMkZXhwb3J0JDc4MWEwYjE4NDhlZjViYntjb25zdHJ1Y3RvcihlLHQpe3RoaXMucmVxPXQsdGhpcy5ndWRodWI9ZX1hc3luYyBhZGQoZSx0LHIpe3RyeXtsZXQgbj17dG9rZW46YXdhaXQgdGhpcy5ndWRodWIuYXV0aC5nZXRUb2tlbigpLGFwcF9pZDplLHVzZXJfaWQ6dCxzaGFyaW5nX3Blcm1pc3Npb246cn07cmV0dXJuIGF3YWl0IHRoaXMucmVxLnBvc3Qoe3VybDpcIi9zaGFyaW5nL2FkZFwiLGZvcm06bn0pfWNhdGNoKGUpe3JldHVybiBjb25zb2xlLmxvZyhlKSxudWxsfX1hc3luYyB1cGRhdGUoZSx0LHIpe3RyeXtsZXQgbj17dG9rZW46YXdhaXQgdGhpcy5ndWRodWIuYXV0aC5nZXRUb2tlbigpLGFwcF9pZDplLHVzZXJfaWQ6dCxzaGFyaW5nX3Blcm1pc3Npb246cn07cmV0dXJuIGF3YWl0IHRoaXMucmVxLnBvc3Qoe3VybDpcIi9zaGFyaW5nL3VwZGF0ZVwiLGZvcm06bn0pfWNhdGNoKGUpe3JldHVybiBjb25zb2xlLmxvZyhlKSxudWxsfX1hc3luYyBkZWxldGUoZSx0KXt0cnl7bGV0IHI9e3Rva2VuOmF3YWl0IHRoaXMuZ3VkaHViLmF1dGguZ2V0VG9rZW4oKSxhcHBfaWQ6ZSx1c2VyX2lkOnR9O3JldHVybiBhd2FpdCB0aGlzLnJlcS5wb3N0KHt1cmw6XCIvc2hhcmluZy9kZWxldGVcIixmb3JtOnJ9KX1jYXRjaChlKXtyZXR1cm4gY29uc29sZS5sb2coZSksbnVsbH19YXN5bmMgZ2V0QXBwVXNlcnMoZSl7dHJ5e2xldCB0PXt0b2tlbjphd2FpdCB0aGlzLmd1ZGh1Yi5hdXRoLmdldFRva2VuKCksYXBwX2lkOmV9O3JldHVybiBhd2FpdCB0aGlzLnJlcS5wb3N0KHt1cmw6XCIvc2hhcmluZy9nZXQtYXBwLXVzZXJzXCIsZm9ybTp0fSl9Y2F0Y2goZSl7cmV0dXJuIGNvbnNvbGUubG9nKGUpLG51bGx9fWFzeW5jIGFkZEludml0YXRpb24oZSx0KXt0cnl7bGV0IHI9e3Rva2VuOmF3YWl0IHRoaXMuZ3VkaHViLmF1dGguZ2V0VG9rZW4oKSxndWVzdHNfZW1haWxzOmUsYXBwczp0fTtyZXR1cm4gYXdhaXQgdGhpcy5yZXEucG9zdCh7dXJsOlwiL2FwaS9pbnZpdGF0aW9uL2FkZFwiLGZvcm06cn0pfWNhdGNoKGUpe3JldHVybiBjb25zb2xlLmxvZyhlKSxudWxsfX19Y2xhc3MgJGU2NDk1ZWYyZmZjZTg4OTckZXhwb3J0JGY2OWY1Yzg2NDBmNzhkMDV7Y29uc3RydWN0b3IoZSl7dGhpcy5ndWRodWI9ZX1hc3luYyBlbWl0VG9Vc2VyKGUsdCl7bGV0IHI9e3VzZXJfaWQ6ZSxkYXRhOlwib2JqZWN0XCI9PXR5cGVvZiB0P0pTT04uc3RyaW5naWZ5KHQpOnR9O3JldHVybiBhd2FpdCB0aGlzLmd1ZGh1Yi5yZXEucG9zdCh7dXJsOlwiL3dzL2VtaXQtdG8tdXNlclwiLGZvcm06cn0pfWFzeW5jIGJyb2FkY2FzdFRvQXBwU3Vic2NyaWJlcnMoZSx0LHIpe2xldCBuPXthcHBfaWQ6ZSxkYXRhOkpTT04uc3RyaW5naWZ5KHtkYXRhX3R5cGU6dCxkYXRhOnJ9KX07cmV0dXJuIGF3YWl0IHRoaXMuZ3VkaHViLnJlcS5wb3N0KHt1cmw6XCIvd3MvYnJvYWRjYXN0LXRvLWFwcC1zdWJzY3JpYmVyc1wiLGZvcm06bn0pfX1jbGFzcyAkOGJmOWQ5MGFlMjQyODY5NCRleHBvcnQkZWViNTY4YjI2MTA5ZDMyZHtjb25zdHJ1Y3RvcihlLHQ9e3NlcnZlcl91cmw6JDcyM2YzYjg2MDU1M2I1MGIkZXhwb3J0JGNhNzZiYjAzNjU3YjlkMGQsd3NzX3VybDokNzIzZjNiODYwNTUzYjUwYiRleHBvcnQkNmQyZGI3OWM0Mzg3OTI3Nyxub2RlX3NlcnZlcl91cmw6JDcyM2YzYjg2MDU1M2I1MGIkZXhwb3J0JDg1Nzc2YTgzYzFhYTBhMzUsaW5pdFdlYnNvY2tldDohMSxhY3RpdmF0ZVNXOiExLHN3TGluazpcIlwiLGFzeW5jX21vZHVsZXNfcGF0aDokNzIzZjNiODYwNTUzYjUwYiRleHBvcnQkNzFiNDU2MzQwODkyOTA5YyxmaWxlX3NlcnZlcl91cmw6JDcyM2YzYjg2MDU1M2I1MGIkZXhwb3J0JGJiNThkNDgxODZiNWQ0YzAsYXV0b21hdGlvbl9tb2R1bGVzX3BhdGg6JDcyM2YzYjg2MDU1M2I1MGIkZXhwb3J0JGU5YWZkMTQ3M2RlN2E2MTUsYWNjZXNzdG9rZW46dGhpcy5hY2Nlc3N0b2tlbixleHBpcnlkYXRlOnRoaXMuZXhwaXJ5ZGF0ZX0pe2lmKHRoaXMuc2VyaWFsaXplZD17YXV0aEtleTplLG9wdGlvbnM6dH0sdGhpcy5jb25maWc9dCx0aGlzLmdoY29uc3RydWN0b3I9bmV3ICRhZmUzODQ5MDFlMDJhNDM4JGV4cG9ydCQyZDI2NzhjY2NmNmU0MDIyKHRoaXMpLHRoaXMuaW50ZXJwcml0YXRlPW5ldyAkMTNhNzQ4YjE5NjU0ZWYyNCRleHBvcnQkZDgwOGQ4YTY3NjNjZTQwNyh0aGlzKSx0aGlzLnBpcGVTZXJ2aWNlPW5ldyAkYzMwOWEzM2FlZDA1Y2JmYSRleHBvcnQkZTUyOWM2ODEwOTlmZTY0Yix0aGlzLnN0b3JhZ2U9bmV3ICQzN2ZjYzYwMGYzMGI5NGRlJGV4cG9ydCRiZjJhMTVkMzRmM2M0NDFjKHQuYXN5bmNfbW9kdWxlc19wYXRoLHQuZmlsZV9zZXJ2ZXJfdXJsLHQuYXV0b21hdGlvbl9tb2R1bGVzX3BhdGgpLHRoaXMudXRpbD1uZXcgJDIyZmMzZGRjZjE3ZmM4NDgkZXhwb3J0JGQyY2E0NTNiOTEzZGNkZWEodGhpcyksdGhpcy5yZXE9bmV3ICQ4ZmQ4ZGVkOGRiMzhhMTgzJGV4cG9ydCQyMzVlMjY1YWM3ZTA2MzYodC5zZXJ2ZXJfdXJsKSx0aGlzLmF1dGg9bmV3ICQzNTgxOTZhNTVlZDBiMDEwJGV4cG9ydCQzMzRjMjk3MjVhNzhjMjFkKHRoaXMucmVxLHRoaXMuc3RvcmFnZSksdGhpcy5zaGFyaW5nPW5ldyAkM2E4YzUyNDgyOGU5MjcxMyRleHBvcnQkNzgxYTBiMTg0OGVmNWJiKHRoaXMsdGhpcy5yZXEpLHRoaXMuZ3JvdXBTaGFyaW5nPW5ldyAkMzI4ZTcyNzk2YzE2ZDE4OSRleHBvcnQkYWYxZGQ5OGE1MmRjMzg4Yyh0aGlzLHRoaXMucmVxLHRoaXMucGlwZVNlcnZpY2UpLGU/dGhpcy5zdG9yYWdlLnNldFVzZXIoe2F1dGhfa2V5OmV9KTp0LmFjY2Vzc3Rva2VuJiZ0LmV4cGlyeWRhdGUmJnRoaXMuc3RvcmFnZS5zZXRVc2VyKHthY2Nlc3N0b2tlbjp0LmFjY2Vzc3Rva2VuLGV4cGlyeWRhdGU6dC5leHBpcnlkYXRlfSksdGhpcy5yZXEuaW5pdCh0aGlzLmF1dGguZ2V0VG9rZW4uYmluZCh0aGlzLmF1dGgpKSx0aGlzLndzPW5ldyAkOTFlYTM1NTQ5YmVjMGJkOSRleHBvcnQkOWEyYjA2NGNhN2U4NjlmYih0Lndzc191cmwsdGhpcy5hdXRoKSx0aGlzLmluaXRpYWxpemVBcHBQcm9jZXNzb3IoKSx0aGlzLml0ZW1Qcm9jZXNzb3I9bmV3ICQ3NGZiMTBkNWZjMzFlNjY4JGV4cG9ydCRlNmNlODZiOGJjMzk3MjhiKHRoaXMuc3RvcmFnZSx0aGlzLnBpcGVTZXJ2aWNlLHRoaXMucmVxLHRoaXMuYXBwUHJvY2Vzc29yLHRoaXMudXRpbCksdGhpcy5maWVsZFByb2Nlc3Nvcj1uZXcgJDgwY2I5YjA0MjFjNjgzZDgkZXhwb3J0JGIyMGU5ZTBmNmZmZDBjZTAodGhpcy5zdG9yYWdlLHRoaXMucmVxLHRoaXMuYXBwUHJvY2Vzc29yLHRoaXMuaXRlbVByb2Nlc3Nvcix0aGlzLnBpcGVTZXJ2aWNlKSx0aGlzLmZpbGVNYW5hZ2VyPW5ldyAkM2NhYTkzODI1ZjU1YWUxZiRleHBvcnQkYTUyNDVjOWIyMzU1ZDFmOCh0aGlzLnN0b3JhZ2UsdGhpcy5waXBlU2VydmljZSx0aGlzLnJlcSx0aGlzLmFwcFByb2Nlc3NvciksdGhpcy5kb2N1bWVudE1hbmFnZXI9bmV3ICRlOTk3MjRjMmRiZjEwYmUyJGV4cG9ydCRkMzlkMmFkYmJjYjM1ZjAxKHRoaXMucmVxLHRoaXMucGlwZVNlcnZpY2UpLHRoaXMud2Vic29ja2V0c2VtaXR0ZXI9bmV3ICRlNjQ5NWVmMmZmY2U4ODk3JGV4cG9ydCRmNjlmNWM4NjQwZjc4ZDA1KHRoaXMpLHQuaW5pdFdlYnNvY2tldCl7bGV0IGU9dGhpczt0aGlzLndzLmluaXRXZWJTb2NrZXQoJDMxYzc4MGM0MjAxMTJiN2UkZXhwb3J0JDkyMGUxZTZiZWExYzgyOC5iaW5kKHRoaXMsZSksdGhpcy5hcHBQcm9jZXNzb3IucmVmcmVzaEFwcHMuYmluZCh0aGlzLmFwcFByb2Nlc3NvcikpfXQuYWN0aXZhdGVTVyYmdGhpcy5hY3RpdmF0ZVNXKHQuc3dMaW5rKX1pbml0aWFsaXplQXBwUHJvY2Vzc29yKCl7dGhpcy5hcHBQcm9jZXNzb3I9bmV3ICRkZTNjZmVmMDE5Zjg1ZTI1JGV4cG9ydCRiMWMyYjY2MWQ4YTFmZDgyKHRoaXMuc3RvcmFnZSx0aGlzLnBpcGVTZXJ2aWNlLHRoaXMucmVxLHRoaXMud3MsdGhpcy51dGlsLHRoaXMuY29uZmlnLmFjdGl2YXRlU1csbmV3ICRiNDAyOTU0ZTIwZGYzODAwJGV4cG9ydCRmZDY3YWVjNjMwMTRiOWM1KHRoaXMucmVxLCRiNDAyOTU0ZTIwZGYzODAwJGV4cG9ydCQ2ZDQ0NjNiMDAwMWEzNWVhLHRoaXMpKX1hc3luYyBhY3RpdmF0ZVNXKGUpe2lmKCQ1eG96Qi5JU19CUk9XU0VSX01BSU5fVEhSRUFEJiZcInNlcnZpY2VXb3JrZXJcImluIHdpbmRvdy5uYXZpZ2F0b3IpdHJ5e2xldCB0PWF3YWl0IHdpbmRvdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcihlKTt0LnVwZGF0ZSgpLnRoZW4oKCk9PmNvbnNvbGUubG9nKFwiJWNTVyAtPj4+IFNlcnZpY2Ugd29ya2VyIHN1Y2Nlc3NmdWwgdXBkYXRlZFwiLFwiZGlzcGxheTogaW5saW5lLWJsb2NrIDsgYmFja2dyb3VuZC1jb2xvcjogIzY4OWYzOCA7IGNvbG9yOiAjZmZmZmZmIDsgZm9udC13ZWlnaHQ6IGJvbGQgOyBwYWRkaW5nOiAzcHggN3B4OyBib3JkZXItcmFkaXVzOiAzcHg7XCIpKS5jYXRjaCgoKT0+Y29uc29sZS53YXJuKFwiU1cgLT4+PiBTZXJ2aWNlIHdvcmtlciBpcyBub3QgdXBkYXRlZFwiKSksY29uc29sZS5sb2coXCIlY1NXIC0+Pj4gU2VydmljZSB3b3JrZXIgaXMgcmVnaXN0ZXJlZFwiLFwiZGlzcGxheTogaW5saW5lLWJsb2NrIDsgYmFja2dyb3VuZC1jb2xvcjogIzY4OWYzOCA7IGNvbG9yOiAjZmZmZmZmIDsgZm9udC13ZWlnaHQ6IGJvbGQgOyBwYWRkaW5nOiAzcHggN3B4OyBib3JkZXItcmFkaXVzOiAzcHg7XCIsdCl9Y2F0Y2goZSl7Y29uc29sZS53YXJuKFwiJWNTVyAtPj4+IFNlcnZpY2Ugd29ya2VyIGlzIG5vdCByZWdpc3RlcmVkXCIsXCJkaXNwbGF5OiBpbmxpbmUtYmxvY2sgOyBiYWNrZ3JvdW5kLWNvbG9yOiAjZDMyZjJmIDsgY29sb3I6ICNmZmZmZmYgOyBmb250LXdlaWdodDogYm9sZCA7IHBhZGRpbmc6IDNweCA3cHg7IGJvcmRlci1yYWRpdXM6IDNweDtcIixlKX1lbHNlIGNvbnNvbGUubG9nKFwiJWNTVyAtPj4+IFNlcnZpY2VXb3JrZXJzIG5vdCBzdXBwb3J0ZWRcIixcImRpc3BsYXk6IGlubGluZS1ibG9jayA7IGJhY2tncm91bmQtY29sb3I6ICNkMzJmMmYgOyBjb2xvcjogI2ZmZmZmZiA7IGZvbnQtd2VpZ2h0OiBib2xkIDsgcGFkZGluZzogM3B4IDdweDsgYm9yZGVyLXJhZGl1czogM3B4O1wiKX1vbihlLHQscil7cmV0dXJuIHRoaXMucGlwZVNlcnZpY2Uub24oZSx0LHIpLHRoaXN9ZW1pdChlLHQscixuKXtyZXR1cm4gdGhpcy5waXBlU2VydmljZS5lbWl0KGUsdCxyLG4pLHRoaXN9ZGVzdHJveShlLHQscil7cmV0dXJuIHRoaXMucGlwZVNlcnZpY2UuZGVzdHJveShlLHQsciksdGhpc31wcmVmaWx0ZXIoZSx0KXtyZXR1cm4gdGhpcy51dGlsLnByZWZpbHRlcihlLHQpfWRlYm91bmNlKGUsdCl7cmV0dXJuIHRoaXMudXRpbC5kZWJvdW5jZShlLHQpfWVtaXRUb1VzZXIoZSx0KXtyZXR1cm4gdGhpcy53ZWJzb2NrZXRzZW1pdHRlci5lbWl0VG9Vc2VyKGUsdCl9YnJvYWRjYXN0VG9BcHBTdWJzY3JpYmVycyhlLHQscil7cmV0dXJuIHRoaXMud2Vic29ja2V0c2VtaXR0ZXIuYnJvYWRjYXN0VG9BcHBTdWJzY3JpYmVycyhlLHQscil9Z2V0SW50ZXJwcmV0YXRpb24oZSx0LHIsbixpLGEsbyl7cmV0dXJuIHRoaXMuaW50ZXJwcml0YXRlLmdldEludGVycHJldGF0aW9uKGUsdCxyLG4saSxhLG8pfWdldEludGVycHJldGF0aW9uQnlJZChlLHQscixuLGksYSl7cmV0dXJuIHRoaXMuaW50ZXJwcml0YXRlLmdldEludGVycHJldGF0aW9uQnlJZChlLHQscixuLGksYSl9ZmlsdGVyKGUsdCl7cmV0dXJuIHRoaXMudXRpbC5maWx0ZXIoZSx0KX1tZXJnZUZpbHRlcnMoZSx0KXtyZXR1cm4gdGhpcy51dGlsLm1lcmdlRmlsdGVycyhlLHQpfWdyb3VwKGUsdCl7cmV0dXJuIHRoaXMudXRpbC5ncm91cChlLHQpfWdldEZpbHRlcmVkSXRlbXMoZSx0LHI9e30pe3JldHVybiB0aGlzLnV0aWwuZ2V0RmlsdGVyZWRJdGVtcyhlLHQsci5lbGVtZW50X2FwcF9pZCxyLmFwcF9pZCxyLml0ZW1faWQsci5maWVsZF9ncm91cCxyLnNlYXJjaCxyLnNlYXJjaF9wYXJhbXMpfXNvcnRJdGVtcyhlLHQpe3JldHVybiB0aGlzLnV0aWwuc29ydEl0ZW1zKGUsdCl9dHJpZ2dlckFwcENoYW5nZShlLHQscil7dGhpcy5pdGVtUHJvY2Vzc29yLmhhbmRsZUl0ZW1zQ2hhbmdlKGUsdCxyKSx0aGlzLmFwcFByb2Nlc3Nvci5oYW5kbGVBcHBDaGFuZ2UoZSx0LHIpfXRyaWdnZXJJZW1zQ2hhbmdlKGUsdCl7dGhpcy5pdGVtUHJvY2Vzc29yLnRyaWdnZXJJdGVtc0NoYW5nZShlLHQpfWpzb25Ub0l0ZW1zKGUsdCl7cmV0dXJuIHRoaXMudXRpbC5qc29uVG9JdGVtcyhlLHQpfWdldERhdGUoZSl7cmV0dXJuIHRoaXMudXRpbC5nZXREYXRlKGUpfXBvcHVsYXRlV2l0aERhdGUoZSx0KXtyZXR1cm4gdGhpcy51dGlsLnBvcHVsYXRlV2l0aERhdGUoZSx0KX1jaGVja1JlY3VycmluZ0RhdGUoZSx0KXtyZXR1cm4gdGhpcy51dGlsLmNoZWNrUmVjdXJyaW5nRGF0ZShlLHQpfXBvcHVsYXRlSXRlbXMoZSx0LHIpe3JldHVybiB0aGlzLnV0aWwucG9wdWxhdGVJdGVtcyhlLHQscil9cG9wdWxhdGVXaXRoSXRlbVJlZihlLHQscixuLGksYSl7cmV0dXJuIHRoaXMudXRpbC5wb3B1bGF0ZVdpdGhJdGVtUmVmKGUsdCxyLG4saSxhKX1jb21wYXJlSXRlbXMoZSx0LHIpe3JldHVybiB0aGlzLnV0aWwuY29tcGFyZUl0ZW1zKGUsdCxyKX1tZXJnZUl0ZW1zKGUsdCxyKXtyZXR1cm4gdGhpcy51dGlsLm1lcmdlSXRlbXMoZSx0LHIpfW1lcmdlT2JqZWN0cyhlLHQpe3JldHVybiB0aGlzLnV0aWwubWVyZ2VPYmplY3RzKGUsdCl9bWFrZU5lc3RlZExpc3QoZSx0LHIsbixpKXtyZXR1cm4gdGhpcy51dGlsLm1ha2VOZXN0ZWRMaXN0KGUsdCxyLG4saSl9anNvbkNvbnN0cnVjdG9yKGUsdCxyLG4pe3JldHVybiB0aGlzLnV0aWwuanNvbkNvbnN0cnVjdG9yKGUsdCxyLG4pfWdldEFwcHNMaXN0KCl7cmV0dXJuIHRoaXMuYXBwUHJvY2Vzc29yLmdldEFwcHNMaXN0KCl9Z2V0QXBwSW5mbyhlKXtyZXR1cm4gdGhpcy5hcHBQcm9jZXNzb3IuZ2V0QXBwSW5mbyhlKX1kZWxldGVBcHAoZSl7cmV0dXJuIHRoaXMuYXBwUHJvY2Vzc29yLmRlbGV0ZUFwcChlKX1nZXRBcHAoZSl7cmV0dXJuIHRoaXMuYXBwUHJvY2Vzc29yLmdldEFwcChlKX11cGRhdGVBcHAoZSl7cmV0dXJuIHRoaXMuYXBwUHJvY2Vzc29yLnVwZGF0ZUFwcChlKX11cGRhdGVBcHBJbmZvKGUpe3JldHVybiB0aGlzLmFwcFByb2Nlc3Nvci51cGRhdGVBcHBJbmZvKGUpfWNyZWF0ZU5ld0FwcChlKXtyZXR1cm4gdGhpcy5hcHBQcm9jZXNzb3IuY3JlYXRlTmV3QXBwKGUpfWdldEl0ZW1zKGUpe3JldHVybiB0aGlzLml0ZW1Qcm9jZXNzb3IuZ2V0SXRlbXMoZSl9YXN5bmMgZ2V0SXRlbShlLHQpe2xldCByPWF3YWl0IHRoaXMuZ2V0SXRlbXMoZSk7aWYocilyZXR1cm4gci5maW5kKGU9PmUuaXRlbV9pZD09dCl9YWRkTmV3SXRlbXMoZSx0KXtyZXR1cm4gdGhpcy5pdGVtUHJvY2Vzc29yLmFkZE5ld0l0ZW1zKGUsdCl9dXBkYXRlSXRlbXMoZSx0KXtyZXR1cm4gdGhpcy5pdGVtUHJvY2Vzc29yLnVwZGF0ZUl0ZW1zKGUsdCl9ZGVsZXRlSXRlbXMoZSx0KXtyZXR1cm4gdGhpcy5pdGVtUHJvY2Vzc29yLmRlbGV0ZUl0ZW1zKGUsdCl9cmVzdG9yZUl0ZW1zKGUsdCl7cmV0dXJuIHRoaXMuaXRlbVByb2Nlc3Nvci5yZXN0b3JlSXRlbXMoZSx0KX1nZXRGaWVsZChlLHQpe3JldHVybiB0aGlzLmZpZWxkUHJvY2Vzc29yLmdldEZpZWxkKGUsdCl9Z2V0RmllbGRJZEJ5TmFtZVNwYWNlKGUsdCl7cmV0dXJuIHRoaXMuZmllbGRQcm9jZXNzb3IuZ2V0RmllbGRJZEJ5TmFtZVNwYWNlKGUsdCl9Z2V0RmllbGRNb2RlbHMoZSl7cmV0dXJuIHRoaXMuZmllbGRQcm9jZXNzb3IuZ2V0RmllbGRNb2RlbHMoZSl9dXBkYXRlRmllbGQoZSx0KXtyZXR1cm4gdGhpcy5maWVsZFByb2Nlc3Nvci51cGRhdGVGaWVsZChlLHQpfWRlbGV0ZUZpZWxkKGUsdCl7cmV0dXJuIHRoaXMuZmllbGRQcm9jZXNzb3IuZGVsZXRlRmllbGQoZSx0KX1nZXRGaWVsZFZhbHVlKGUsdCxyKXtyZXR1cm4gdGhpcy5maWVsZFByb2Nlc3Nvci5nZXRGaWVsZFZhbHVlKGUsdCxyKX1zZXRGaWVsZFZhbHVlKGUsdCxyLG4pe3JldHVybiB0aGlzLmZpZWxkUHJvY2Vzc29yLnNldEZpZWxkVmFsdWUoZSx0LHIsbil9Z2V0RmlsZShlLHQpe3JldHVybiB0aGlzLmZpbGVNYW5hZ2VyLmdldEZpbGUoZSx0KX1nZXRGaWxlcyhlLHQpe3JldHVybiB0aGlzLmZpbGVNYW5hZ2VyLmdldEZpbGVzKGUsdCl9dXBsb2FkRmlsZShlLHQscil7cmV0dXJuIHRoaXMuZmlsZU1hbmFnZXIudXBsb2FkRmlsZShlLHQscil9dXBsb2FkRmlsZUZyb21TdHJpbmcoZSx0LHIsbixpLGEsbyl7cmV0dXJuIHRoaXMuZmlsZU1hbmFnZXIudXBsb2FkRmlsZUZyb21TdHJpbmcoZSx0LHIsbixpLGEsbyl9dXBkYXRlRmlsZUZyb21TdHJpbmcoZSx0LHIsbixpLGEsbyl7cmV0dXJuIHRoaXMuZmlsZU1hbmFnZXIudXBkYXRlRmlsZUZyb21TdHJpbmcoZSx0LHIsbixpLGEsbyl9ZGVsZXRlRmlsZShlLHQpe3JldHVybiB0aGlzLmZpbGVNYW5hZ2VyLmRlbGV0ZUZpbGUoZSx0KX1kdXBsaWNhdGVGaWxlKGUpe3JldHVybiB0aGlzLmZpbGVNYW5hZ2VyLmR1cGxpY2F0ZUZpbGUoZSl9ZG93bmxvYWRGaWxlRnJvbVN0cmluZyhlLHQpe3JldHVybiB0aGlzLmZpbGVNYW5hZ2VyLmRvd25sb2FkRmlsZUZyb21TdHJpbmcoZSx0KX1jcmVhdGVEb2N1bWVudChlKXtyZXR1cm4gdGhpcy5kb2N1bWVudE1hbmFnZXIuY3JlYXRlRG9jdW1lbnQoZSl9Z2V0RG9jdW1lbnQoZSl7cmV0dXJuIHRoaXMuZG9jdW1lbnRNYW5hZ2VyLmdldERvY3VtZW50KGUpfWdldERvY3VtZW50cyhlKXtyZXR1cm4gdGhpcy5kb2N1bWVudE1hbmFnZXIuZ2V0RG9jdW1lbnRzKGUpfWRlbGV0ZURvY3VtZW50KGUpe3JldHVybiB0aGlzLmRvY3VtZW50TWFuYWdlci5kZWxldGVEb2N1bWVudChlKX1sb2dpbihlKXtyZXR1cm4gdGhpcy5hdXRoLmxvZ2luKGUpfWxvZ2luV2l0aFRva2VuKGUpe3JldHVybiB0aGlzLmF1dGgubG9naW5XaXRoVG9rZW4oZSl9bG9nb3V0KGUpe3JldHVybiB0aGlzLmFwcFByb2Nlc3Nvci5jbGVhckFwcFByb2Nlc3NvcigpLHRoaXMuYXV0aC5sb2dvdXQoZSl9c2lnbnVwKGUpe3JldHVybiB0aGlzLmF1dGguc2lnbnVwKGUpfWdldFVzZXJzTGlzdChlKXtyZXR1cm4gdGhpcy5hdXRoLmdldFVzZXJzTGlzdChlKX11cGRhdGVUb2tlbihlKXtyZXR1cm4gdGhpcy5hdXRoLnVwZGF0ZVRva2VuKGUpfWF2YXRhclVwbG9hZEFwaShlKXtyZXR1cm4gdGhpcy5hdXRoLmF2YXRhclVwbG9hZEFwaShlKX1nZXRWZXJzaW9uKCl7cmV0dXJuIHRoaXMuYXV0aC5nZXRWZXJzaW9uKCl9Z2V0VXNlckJ5SWQoZSl7cmV0dXJuIHRoaXMuYXV0aC5nZXRVc2VyQnlJZChlKX1nZXRUb2tlbigpe3JldHVybiB0aGlzLmF1dGguZ2V0VG9rZW4oKX11cGRhdGVVc2VyKGUpe3JldHVybiB0aGlzLmF1dGgudXBkYXRlVXNlcihlKX11cGRhdGVBdmF0YXIoZSl7cmV0dXJuIHRoaXMuYXV0aC51cGRhdGVBdmF0YXIoZSl9fWNsYXNzICQyZTg5MzE5N2ZjNjA3ZDA4JGV4cG9ydCRjMGNiZDE3NGNiOWVhMzU1IGV4dGVuZHMgJDhiZjlkOTBhZTI0Mjg2OTQkZXhwb3J0JGVlYjU2OGIyNjEwOWQzMmR7aW5pdGlhbGl6ZUFwcFByb2Nlc3Nvcigpe3RoaXMuYXBwUHJvY2Vzc29yPW5ldyAkZGUzY2ZlZjAxOWY4NWUyNSRleHBvcnQkYjFjMmI2NjFkOGExZmQ4Mih0aGlzLnN0b3JhZ2UsdGhpcy5waXBlU2VydmljZSx0aGlzLnJlcSx0aGlzLndzLHRoaXMudXRpbCwhMSxuZXcgJGI0MDI5NTRlMjBkZjM4MDAkZXhwb3J0JGJhNDI3YTg5NzQ4ZDM2MzYodGhpcy5yZXEsJGY5MmNkZDMwYTgyZmEzMTEkZXhwb3J0JDk0ZDAwZGU3ODQzODUwY2EsdGhpcykpfX1sZXQgJGEyMDY4YWNkNzRlM2IzZDgkdmFyJGd1ZGh1Yj17fSwkYTIwNjhhY2Q3NGUzYjNkOCR2YXIkYXBwRGF0YVNlcnZpY2U9e30sJGEyMDY4YWNkNzRlM2IzZDgkdmFyJGNodW5rRGF0YVNlcnZpY2U9e307Z2xvYmFsVGhpcy5vbm1lc3NhZ2U9YXN5bmMgZnVuY3Rpb24oZSl7aWYoZS5kYXRhLnR5cGU9PT0kZjk5NTJhM2FjZWNlNThmMCRleHBvcnQkZTgwZTBjMzViMWZkNDM4LklOSVQmJihlLmRhdGEuZ3VkaHViU2VyaWFsaXplZC5vcHRpb25zLmluaXRXZWJzb2NrZXQ9ITEsJGEyMDY4YWNkNzRlM2IzZDgkdmFyJGd1ZGh1Yj1uZXcgJDJlODkzMTk3ZmM2MDdkMDgkZXhwb3J0JGMwY2JkMTc0Y2I5ZWEzNTUoZS5kYXRhLmd1ZGh1YlNlcmlhbGl6ZWQuYXV0aEtleSxlLmRhdGEuZ3VkaHViU2VyaWFsaXplZC5vcHRpb25zKSwkYTIwNjhhY2Q3NGUzYjNkOCR2YXIkYXBwRGF0YVNlcnZpY2U9bmV3ICRiNDAyOTU0ZTIwZGYzODAwJGV4cG9ydCRiYTQyN2E4OTc0OGQzNjM2KCRhMjA2OGFjZDc0ZTNiM2Q4JHZhciRndWRodWIucmVxLCRmOTJjZGQzMGE4MmZhMzExJGV4cG9ydCQ5NGQwMGRlNzg0Mzg1MGNhLCRhMjA2OGFjZDc0ZTNiM2Q4JHZhciRndWRodWIpLCRhMjA2OGFjZDc0ZTNiM2Q4JHZhciRjaHVua0RhdGFTZXJ2aWNlPW5ldyAkYjQwMjk1NGUyMGRmMzgwMCRleHBvcnQkYTEzM2JmMTdkM2ZkMDJmZigkYTIwNjhhY2Q3NGUzYjNkOCR2YXIkZ3VkaHViLnJlcSwkZDgxMjIwOTkwM2MwMjg4YSRleHBvcnQkNDA1Y2Y2MWQ0NGIyZDc1ZSwkYTIwNjhhY2Q3NGUzYjNkOCR2YXIkZ3VkaHViKSksZS5kYXRhLnR5cGU9PSRmOTk1MmEzYWNlY2U1OGYwJGV4cG9ydCRlODBlMGMzNWIxZmQ0MzguUFJPQ0VTU19EQVRBKXtpZighZS5kYXRhLnVzZWRDYWNoZWREYXRhVmVyc2lvbil7dGhpcy5wb3N0TWVzc2FnZSh7aWQ6ZS5kYXRhLmlkLHR5cGU6JGY5OTUyYTNhY2VjZTU4ZjAkZXhwb3J0JGU4MGUwYzM1YjFmZDQzOC5ERUNMSU5FX1BST0NFU1NfREFUQV9SRVFVRVNUfSk7cmV0dXJufWxldCB0PWF3YWl0ICRhMjA2OGFjZDc0ZTNiM2Q4JHZhciRhcHBEYXRhU2VydmljZS5nZXRDYWNoZWQoZS5kYXRhLmlkKSxyPXQuY2h1bmtzLG49YXdhaXQgJGEyMDY4YWNkNzRlM2IzZDgkdmFyJGFwcERhdGFTZXJ2aWNlLmdldEFwcFdpdGhvdXRQcm9jZXNzaW5nKGUuZGF0YS5pZCksaT0hMDtpZihyLmxlbmd0aCE9bi5jaHVua3MubGVuZ3RoJiYoaT0hMSksbi5jaHVua3Muc29tZShlPT4hci5pbmNsdWRlcyhlKSkmJihpPSExKSwhaSl7bGV0IHI9YXdhaXQgJGEyMDY4YWNkNzRlM2IzZDgkdmFyJGNodW5rRGF0YVNlcnZpY2UuZ2V0Q2FjaGVkTWVyZ2VkQ2h1bmsoZS5kYXRhLmlkLHQuY2h1bmtzKTtyJiYodC5pdGVtc19saXN0PWF3YWl0ICRhMjA2OGFjZDc0ZTNiM2Q4JHZhciRndWRodWIudXRpbC5tZXJnZUNodW5rcyhbcix0XSkpLG49YXdhaXQgJGEyMDY4YWNkNzRlM2IzZDgkdmFyJGFwcERhdGFTZXJ2aWNlLmdldEFwcChlLmRhdGEuaWQpfWxldCBhPSRhMjA2OGFjZDc0ZTNiM2Q4JHZhciRndWRodWIuY29tcGFyZUl0ZW1zKG4uaXRlbXNfbGlzdCx0Lml0ZW1zX2xpc3QpLG89JGEyMDY4YWNkNzRlM2IzZDgkdmFyJGd1ZGh1Yi51dGlsLmFyZVZpZXdMaXN0c0VxdWFsKHQudmlld3NfbGlzdCxuLnZpZXdzX2xpc3QpLHM9JGEyMDY4YWNkNzRlM2IzZDgkdmFyJGd1ZGh1Yi51dGlsLmFyZUZpZWxkTGlzdHNFcXVhbCh0LmZpZWxkX2xpc3Qsbi5maWVsZF9saXN0KTt0aGlzLnBvc3RNZXNzYWdlKHtpZDplLmRhdGEuaWQsY29tcGFyZVJlczphLG5ld1ZlcnNpb246bix0eXBlOmUuZGF0YS50eXBlLHZpZXdMaXN0Q2hhbmdlZDpvLGZpZWxkTGlzdENoYW5nZWQ6c30pfWlmKGUuZGF0YS50eXBlPT0kZjk5NTJhM2FjZWNlNThmMCRleHBvcnQkZTgwZTBjMzViMWZkNDM4LlJFUVVFU1RfQVBQKXRyeXtsZXQgdD1hd2FpdCAkYTIwNjhhY2Q3NGUzYjNkOCR2YXIkZ3VkaHViLmdldEFwcChlLmRhdGEuaWQpO3RoaXMucG9zdE1lc3NhZ2Uoe2lkOmUuZGF0YS5pZCx0eXBlOmUuZGF0YS50eXBlLGRhdGE6dH0pfWNhdGNoKGUpe319fSkoKTsiXSwibmFtZXMiOlsiJGI0MDI5NTRlMjBkZjM4MDAkZXhwb3J0JGZkNjdhZWM2MzAxNGI5YzUiLCIkYjQwMjk1NGUyMGRmMzgwMCRleHBvcnQkMmRiMjQ3N2E4N2UwMDc5OSIsIiRiNDAyOTU0ZTIwZGYzODAwJGV4cG9ydCQ2ZDQ0NjNiMDAwMWEzNWVhIiwiJGI0MDI5NTRlMjBkZjM4MDAkZXhwb3J0JGU0YzdlMmJmNzYwOTI0MGYiLCIkYThlMzVjOTdkYTM0NzMwYyR2YXIkaGFzUHJvdG9BY2Nlc3NvciIsIiRwYXJjZWwkZ2xvYmFsIiwiJHBhcmNlbCRpbnRlcm9wRGVmYXVsdCIsImUiLCIkcGFyY2VsJGV4cG9ydCIsInQiLCJyIiwibiIsIiRwYXJjZWwkbW9kdWxlcyIsIiRwYXJjZWwkaW5pdHMiLCJwYXJjZWxSZXF1aXJlIiwicGFyY2VsUmVnaXN0ZXIiLCJpIiwiYSIsIm8iLCJzIiwibCIsInUiLCJjIiwicCIsImQiLCJoIiwibSIsImciLCJmIiwieSIsIl8iLCJtb2R1bGUiLCJleHBvcnRzIiwiJDV4b3pCIiwiJDcyM2YzYjg2MDU1M2I1MGIkZXhwb3J0JGNhNzZiYjAzNjU3YjlkMGQiLCIkNzIzZjNiODYwNTUzYjUwYiRleHBvcnQkNmQyZGI3OWM0Mzg3OTI3NyIsIiQ3MjNmM2I4NjA1NTNiNTBiJGV4cG9ydCQ4NTc3NmE4M2MxYWEwYTM1IiwiJDcyM2YzYjg2MDU1M2I1MGIkZXhwb3J0JDcxYjQ1NjM0MDg5MjkwOWMiLCIkNzIzZjNiODYwNTUzYjUwYiRleHBvcnQkZTlhZmQxNDczZGU3YTYxNSIsIiQ3MjNmM2I4NjA1NTNiNTBiJGV4cG9ydCRiYjU4ZDQ4MTg2YjVkNGMwIiwiJDcyM2YzYjg2MDU1M2I1MGIkZXhwb3J0JGNiOWMyY2IzMmUwN2FhMjMiLCIkNzIzZjNiODYwNTUzYjUwYiRleHBvcnQkZTE0OTc4MGI1NTljODdlOCIsIiQ3MjNmM2I4NjA1NTNiNTBiJGV4cG9ydCQ2NjY3NjRhYTM3MjViNzBmIiwiJGY2NjVhMmU4ZTljMTEzNjkkZXhwb3J0JDdmMmY2MTA1NGQ1MTE5YWMiLCIkM2QxMGNiODJiZTA4NDg2YiRleHBvcnQkZmQ2N2FlYzYzMDE0YjljNSIsIiRlZjhmZWUzZDA2NjUzMTQ4JGV4cG9ydCRjYzUxNmQ4ZGM4MGYzYjhlIiwiJDk4MjgwZDRiYjc5ZTFiNzkkZXhwb3J0JDM0YWM1ZjI5ODEzNDUzMzIiLCIkZTkyZWMyODI2MmM5OTg5YSRleHBvcnQkNTAyNjU1ZDhhZjhhNGRhYiIsIiQ1Nzc4NWEyNDM4NjE0YjZjJGV4cG9ydCQxMTZlZDMxNGJiMWM0MjBlIiwiJDhjMGRjYzQyYjA3NmI3NWQkZXhwb3J0JDJkYjI0NzdhODdlMDA3OTkiLCIkNDAxNGQyMTJmYzQwOWE0ZiRleHBvcnQkNzM3OWJlMTAzOTkwZTMzYiIsIiQ1MzM3MWFiZDNhYTRjYmQ3JGV4cG9ydCRhYTViZjE0YmUwZDBkZTgwIiwiJGY5MmNkZDMwYTgyZmEzMTEkZXhwb3J0JDk0ZDAwZGU3ODQzODUwY2EiLCIkN2IxNTU3YjIzZGNmMTc3MSRleHBvcnQkZjIwMmEzMWU0MTQ3NzA3ZSIsIiQ3Y2Y4ZWQ4OTVmZWZlY2ZiJGV4cG9ydCQ3OGJiMjk0ZGQ4YjQ1OTUyIiwiJGQ4MTIyMDk5MDNjMDI4OGEkZXhwb3J0JDQwNWNmNjFkNDRiMmQ3NWUiLCIkNzcxYmE2YzI3ZWQzMDVlZSRleHBvcnQkNWI3NTkyMDJhZTRjOWEyZCIsIiQ3NzFiYTZjMjdlZDMwNWVlJGV4cG9ydCQ0YjBlYTcyYjc1NDU3NmQxIiwiJDc3MWJhNmMyN2VkMzA1ZWUkZXhwb3J0JDkwM2FiYTRmNjcyYTc2YjIiLCIkOGMxMTExNmRhZjJhZGUwOSRleHBvcnQkOTE2ZTU1NDI0M2FhZTYwZiIsIiRlYWFlZGE2OTA1ODEyNTlkJGV4cG9ydCQ0NDk4NTMwN2I0N2NmYjllIiwiJGVhYWVkYTY5MDU4MTI1OWQkZXhwb3J0JGUwMjc2YjI0OTZlZDJhMDEiLCIkMjJjOGZlMzA3M2YzMTg5MCRleHBvcnQkYjFjZWM1Mzg4YzZlZTE3ZiIsIiRmOTk1MmEzYWNlY2U1OGYwJGV4cG9ydCRlODBlMGMzNWIxZmQ0MzgiLCIkZjk5NTJhM2FjZWNlNThmMCRleHBvcnQkN2VmMjQ2NDNmNGQyZDBiYSIsIiRmOTk1MmEzYWNlY2U1OGYwJGV4cG9ydCRmMWFjYTRkMjlmNmRiMjM5IiwiJGY5OTUyYTNhY2VjZTU4ZjAkZXhwb3J0JGJhMTVlODFlNjI4MzA3MWQiLCIkYjQwMjk1NGUyMGRmMzgwMCRleHBvcnQkYmE0MjdhODk3NDhkMzYzNiIsIiRiNDAyOTU0ZTIwZGYzODAwJGV4cG9ydCRhMTMzYmYxN2QzZmQwMmZmIiwiJGRlM2NmZWYwMTlmODVlMjUkZXhwb3J0JGIxYzJiNjYxZDhhMWZkODIiLCIkYWtYSzQiLCIkMmY5ZWMzMGUyZmQ2OTVhMyRleHBvcnQkNDg4ZWRiYjkxZTRkMWYxNyIsIiQyZjllYzMwZTJmZDY5NWEzJGV4cG9ydCQ3N2JkNzFhYjVjZTIwYjNkIiwiJGVmNTljMWEyZDkxYmRjZGMkZXhwb3J0cyIsIiRmMTFjZDUwOGUzZjJlOTRjJGV4cG9ydHMiLCIkODI4ODU5ZGM4YzU5MjhkZCRleHBvcnRzIiwiJDgxZjE0ZjY0NTc2NWQyN2IkZXhwb3J0cyIsIiQ2MTBiY2Y2YWQ4MmM0ZmRiJGV4cG9ydHMiLCIkNjEwYmNmNmFkODJjNGZkYiR2YXIkaGFzTWFwIiwiJDYxMGJjZjZhZDgyYzRmZGIkdmFyJG1hcFNpemVEZXNjcmlwdG9yIiwiJDYxMGJjZjZhZDgyYzRmZGIkdmFyJG1hcFNpemUiLCIkNjEwYmNmNmFkODJjNGZkYiR2YXIkbWFwRm9yRWFjaCIsIiQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRoYXNTZXQiLCIkNjEwYmNmNmFkODJjNGZkYiR2YXIkc2V0U2l6ZURlc2NyaXB0b3IiLCIkNjEwYmNmNmFkODJjNGZkYiR2YXIkc2V0U2l6ZSIsIiQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRzZXRGb3JFYWNoIiwiJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGhhc1dlYWtNYXAiLCIkNjEwYmNmNmFkODJjNGZkYiR2YXIkd2Vha01hcEhhcyIsIiQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRoYXNXZWFrU2V0IiwiJDYxMGJjZjZhZDgyYzRmZGIkdmFyJHdlYWtTZXRIYXMiLCIkNjEwYmNmNmFkODJjNGZkYiR2YXIkaGFzV2Vha1JlZiIsIiQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciR3ZWFrUmVmRGVyZWYiLCIkNjEwYmNmNmFkODJjNGZkYiR2YXIkYm9vbGVhblZhbHVlT2YiLCIkNjEwYmNmNmFkODJjNGZkYiR2YXIkb2JqZWN0VG9TdHJpbmciLCIkNjEwYmNmNmFkODJjNGZkYiR2YXIkZnVuY3Rpb25Ub1N0cmluZyIsIiQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciQkbWF0Y2giLCIkNjEwYmNmNmFkODJjNGZkYiR2YXIkJHNsaWNlIiwiJDYxMGJjZjZhZDgyYzRmZGIkdmFyJCRyZXBsYWNlIiwiJDYxMGJjZjZhZDgyYzRmZGIkdmFyJCR0b1VwcGVyQ2FzZSIsIiQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciQkdG9Mb3dlckNhc2UiLCIkNjEwYmNmNmFkODJjNGZkYiR2YXIkJHRlc3QiLCIkNjEwYmNmNmFkODJjNGZkYiR2YXIkJGNvbmNhdCIsIiQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciQkam9pbiIsIiQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciQkYXJyU2xpY2UiLCIkNjEwYmNmNmFkODJjNGZkYiR2YXIkJGZsb29yIiwiJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGJpZ0ludFZhbHVlT2YiLCIkNjEwYmNmNmFkODJjNGZkYiR2YXIkZ09QUyIsIiQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRzeW1Ub1N0cmluZyIsIiQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRoYXNTaGFtbWVkU3ltYm9scyIsIiQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciR0b1N0cmluZ1RhZyIsIiQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRpc0VudW1lcmFibGUiLCIkNjEwYmNmNmFkODJjNGZkYiR2YXIkZ1BPIiwiJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGFkZE51bWVyaWNTZXBhcmF0b3IiLCIkYzEzMWE3MDA4MTlmNzc0NCRleHBvcnRzIiwiJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGluc3BlY3RDdXN0b20iLCIkNjEwYmNmNmFkODJjNGZkYiR2YXIkaW5zcGVjdFN5bWJvbCIsIiQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRpc1N5bWJvbCIsIiQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRxdW90ZXMiLCIkNjEwYmNmNmFkODJjNGZkYiR2YXIkcXVvdGVSRXMiLCIkNjEwYmNmNmFkODJjNGZkYiR2YXIkd3JhcFF1b3RlcyIsIiQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRxdW90ZSIsIiQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRjYW5UcnVzdFRvU3RyaW5nIiwiJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGlzQXJyYXkiLCIkNjEwYmNmNmFkODJjNGZkYiR2YXIkdG9TdHIiLCIkNjEwYmNmNmFkODJjNGZkYiR2YXIkaXNEYXRlIiwiJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGlzUmVnRXhwIiwiJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGlzRXJyb3IiLCIkNjEwYmNmNmFkODJjNGZkYiR2YXIkaXNTdHJpbmciLCIkNjEwYmNmNmFkODJjNGZkYiR2YXIkaXNOdW1iZXIiLCIkNjEwYmNmNmFkODJjNGZkYiR2YXIkaXNCb29sZWFuIiwiJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGlzQmlnSW50IiwiJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGhhcyIsIiQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRpbnNwZWN0U3RyaW5nIiwiJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGdldEluZGVudCIsIiQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRpbmRleE9mIiwiJDYxMGJjZjZhZDgyYzRmZGIkdmFyJG5hbWVPZiIsIiQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRhcnJPYmpLZXlzIiwiJDYxMGJjZjZhZDgyYzRmZGIkdmFyJG1hcmtCb3hlZCIsIiQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRpc0VsZW1lbnQiLCJ2IiwiJDYxMGJjZjZhZDgyYzRmZGIkdmFyJHNpbmdsZUxpbmVWYWx1ZXMiLCIkNjEwYmNmNmFkODJjNGZkYiR2YXIkaW5kZW50ZWRKb2luIiwiYiIsIiQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRpc01hcCIsInciLCIkNjEwYmNmNmFkODJjNGZkYiR2YXIkY29sbGVjdGlvbk9mIiwiJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGlzU2V0IiwiUyIsIiQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRpc1dlYWtNYXAiLCIkNjEwYmNmNmFkODJjNGZkYiR2YXIkd2Vha0NvbGxlY3Rpb25PZiIsIiQ2MTBiY2Y2YWQ4MmM0ZmRiJHZhciRpc1dlYWtTZXQiLCIkNjEwYmNmNmFkODJjNGZkYiR2YXIkaXNXZWFrUmVmIiwiRSIsIkEiLCJ4IiwiayIsIkkiLCIkNjEwYmNmNmFkODJjNGZkYiR2YXIkaGFzT3duIiwiJDYxMGJjZjZhZDgyYzRmZGIkdmFyJGxvd2J5dGUiLCIkZDg2YTA1NGZhNjZjNTMwNSRleHBvcnRzIiwiJGQ4NmEwNTRmYTY2YzUzMDUkdmFyJGxpc3RHZXROb2RlIiwiJGQ4NmEwNTRmYTY2YzUzMDUkdmFyJGxpc3RHZXQiLCIkZDg2YTA1NGZhNjZjNTMwNSR2YXIkbGlzdFNldCIsIiRkODZhMDU0ZmE2NmM1MzA1JHZhciRsaXN0SGFzIiwiJGQ4NmEwNTRmYTY2YzUzMDUkdmFyJGxpc3REZWxldGUiLCIkNWEwOGE5MjU1ODdmODEwOCRleHBvcnRzIiwiJGNmMWM2NGZkN2Y5ZjY4NGIkZXhwb3J0cyIsIiRlNGVjN2ZjYzA2ZTI2MWUzJGV4cG9ydHMiLCIkYTIwNDFmZmQ5MzYwZDE0YyRleHBvcnRzIiwiJDMwMzIxYjA5Y2Q1YWI3MTkkZXhwb3J0cyIsIiQzOTYwZWYzZmQzYTNjYzkwJGV4cG9ydHMiLCIkNTdjMGM0NWVmZmU4OTY2YSRleHBvcnRzIiwiJGYyYWVlMWNiYzJlNWUxNDQkZXhwb3J0cyIsIiQ2NDlmM2VjOGI1YTNjMmI2JGV4cG9ydHMiLCIkOWVmZTE4ZjZjY2UyYmQ3NiRleHBvcnRzIiwiJGE0MWU3YzI2NzMyZjRlYjckZXhwb3J0cyIsIiRhNGM0ZGNjYzFiYmM4NDQ3JGV4cG9ydHMiLCIkYzk4NWQyOGVhOWYyYWZlYiRleHBvcnRzIiwiJDE1ZGRmOTU1MjFjMjNkZjUkZXhwb3J0cyIsIiQzYTYzM2FlZmFkNWQ0Y2VhJGV4cG9ydHMiLCIkNmJmNDFiOGUzNzA3N2IwMCRleHBvcnRzIiwiJDJmZDM4OTQ0ZmMxZTlhZmUkZXhwb3J0cyIsIiRjZjFjNjRmZDdmOWY2ODRiJHZhciQkRnVuY3Rpb24iLCIkY2YxYzY0ZmQ3ZjlmNjg0YiR2YXIkZ2V0RXZhbGxlZENvbnN0cnVjdG9yIiwiJDY1ZDY2YzY0N2RkZWFjMzIkZXhwb3J0cyIsIiQzYmUyNmMyZTM2YmNlZDhkJGV4cG9ydHMiLCIkNjVkNjZjNjQ3ZGRlYWMzMiRyZXF1aXJlJCRnT1BEIiwiJGNlMDdiNTI0OTc2NTU4YjEkZXhwb3J0cyIsIiRjZTA3YjUyNDk3NjU1OGIxJHZhciQkZGVmaW5lUHJvcGVydHkiLCIkY2YxYzY0ZmQ3ZjlmNjg0YiR2YXIkdGhyb3dUeXBlRXJyb3IiLCIkY2YxYzY0ZmQ3ZjlmNjg0YiR2YXIkVGhyb3dUeXBlRXJyb3IiLCIkY2YxYzY0ZmQ3ZjlmNjg0YiR2YXIkaGFzU3ltYm9scyIsIiQzMzUzYjg0MjY2NDBlZjk1JGV4cG9ydHMiLCIkYTdmZjRhYjE0Y2YzYWQ1YiRleHBvcnRzIiwiJGY1YTE3ZTU2NWRiMDU4YTkkZXhwb3J0cyIsIiRhOGUzNWM5N2RhMzQ3MzBjJGV4cG9ydHMiLCIkZWM3ZTJjNTI5NWE1MjkxMiRleHBvcnRzIiwiJGNjMTBlNDI3OTRiNWY3ODkkZXhwb3J0cyIsIiQxZWVhMGVmMjY2ZjNjOTMyJGV4cG9ydHMiLCIkMWVlYTBlZjI2NmYzYzkzMiR2YXIkRVJST1JfTUVTU0FHRSIsIiQxZWVhMGVmMjY2ZjNjOTMyJHZhciR0b1N0ciIsIiQxZWVhMGVmMjY2ZjNjOTMyJHZhciRtYXgiLCIkMWVlYTBlZjI2NmYzYzkzMiR2YXIkZnVuY1R5cGUiLCIkMWVlYTBlZjI2NmYzYzkzMiR2YXIkY29uY2F0dHkiLCIkMWVlYTBlZjI2NmYzYzkzMiR2YXIkc2xpY3kiLCIkMWVlYTBlZjI2NmYzYzkzMiR2YXIkam9pbnkiLCIkNzNhYTJhM2Q1MmNlNDMwYyRleHBvcnRzIiwiJGFhNmNmODcyMzdjZmJiODEkZXhwb3J0cyIsIiQxYTE3YTBmY2U5NmVmYzUxJGV4cG9ydHMiLCIkNDhhNWYyMThiNmM3ZWI3OCRleHBvcnRzIiwiJGE4ZTM1Yzk3ZGEzNDczMGMkdmFyJGRlc2MiLCIkYThlMzVjOTdkYTM0NzMwYyR2YXIkJE9iamVjdCIsIiRhOGUzNWM5N2RhMzQ3MzBjJHZhciQkZ2V0UHJvdG90eXBlT2YiLCIkY2YxYzY0ZmQ3ZjlmNjg0YiR2YXIkbmVlZHNFdmFsIiwiJGNmMWM2NGZkN2Y5ZjY4NGIkdmFyJFR5cGVkQXJyYXkiLCIkY2YxYzY0ZmQ3ZjlmNjg0YiR2YXIkSU5UUklOU0lDUyIsIiRjZjFjNjRmZDdmOWY2ODRiJHZhciRlcnJvclByb3RvIiwiJGNmMWM2NGZkN2Y5ZjY4NGIkdmFyJGRvRXZhbCIsIiRjZjFjNjRmZDdmOWY2ODRiJHZhciRMRUdBQ1lfQUxJQVNFUyIsIiQxN2Y5NmIyZjFiMjAzYjY2JGV4cG9ydHMiLCIkMTdmOTZiMmYxYjIwM2I2NiR2YXIkY2FsbCIsIiQxN2Y5NmIyZjFiMjAzYjY2JHZhciQkaGFzT3duIiwiJGNmMWM2NGZkN2Y5ZjY4NGIkdmFyJCRjb25jYXQiLCIkY2YxYzY0ZmQ3ZjlmNjg0YiR2YXIkJHNwbGljZUFwcGx5IiwiJGNmMWM2NGZkN2Y5ZjY4NGIkdmFyJCRyZXBsYWNlIiwiJGNmMWM2NGZkN2Y5ZjY4NGIkdmFyJCRzdHJTbGljZSIsIiRjZjFjNjRmZDdmOWY2ODRiJHZhciQkZXhlYyIsIiRjZjFjNjRmZDdmOWY2ODRiJHZhciRyZVByb3BOYW1lIiwiJGNmMWM2NGZkN2Y5ZjY4NGIkdmFyJHJlRXNjYXBlQ2hhciIsIiRjZjFjNjRmZDdmOWY2ODRiJHZhciRzdHJpbmdUb1BhdGgiLCIkY2YxYzY0ZmQ3ZjlmNjg0YiR2YXIkZ2V0QmFzZUludHJpbnNpYyIsIiRmYmQ5NmM1MTU1YWE1MDg5JGV4cG9ydHMiLCIkZmJkOTZjNTE1NWFhNTA4OSR2YXIkJGluZGV4T2YiLCIkNWEwOGE5MjU1ODdmODEwOCR2YXIkJE1hcCIsIiQ1YTA4YTkyNTU4N2Y4MTA4JHZhciQkbWFwR2V0IiwiJDVhMDhhOTI1NTg3ZjgxMDgkdmFyJCRtYXBTZXQiLCIkNWEwOGE5MjU1ODdmODEwOCR2YXIkJG1hcEhhcyIsIiQ1YTA4YTkyNTU4N2Y4MTA4JHZhciQkbWFwRGVsZXRlIiwiJDVhMDhhOTI1NTg3ZjgxMDgkdmFyJCRtYXBTaXplIiwiJDNlYzA1ZTMyMDlkYTU4NDAkZXhwb3J0cyIsIiQzZWMwNWUzMjA5ZGE1ODQwJHZhciQkV2Vha01hcCIsIiQzZWMwNWUzMjA5ZGE1ODQwJHZhciQkd2Vha01hcEdldCIsIiQzZWMwNWUzMjA5ZGE1ODQwJHZhciQkd2Vha01hcFNldCIsIiQzZWMwNWUzMjA5ZGE1ODQwJHZhciQkd2Vha01hcEhhcyIsIiQzZWMwNWUzMjA5ZGE1ODQwJHZhciQkd2Vha01hcERlbGV0ZSIsIiQ4Mjg4NTlkYzhjNTkyOGRkJHZhciRtYWtlQ2hhbm5lbCIsIiQzNjZkOTFhMjNlNjdhN2FhJGV4cG9ydHMiLCIkYzI5YzRjOTFkNjk1OTVhOCRleHBvcnRzIiwiJGMyOWM0YzkxZDY5NTk1YTgkdmFyJHJlcGxhY2UiLCIkYzI5YzRjOTFkNjk1OTVhOCR2YXIkcGVyY2VudFR3ZW50aWVzIiwiJGMyOWM0YzkxZDY5NTk1YTgkdmFyJEZvcm1hdCIsIiQzNjZkOTFhMjNlNjdhN2FhJHZhciRoYXMiLCIkMzY2ZDkxYTIzZTY3YTdhYSR2YXIkaXNBcnJheSIsIiQzNjZkOTFhMjNlNjdhN2FhJHZhciRoZXhUYWJsZSIsIiQzNjZkOTFhMjNlNjdhN2FhJHZhciRjb21wYWN0UXVldWUiLCIkMzY2ZDkxYTIzZTY3YTdhYSR2YXIkYXJyYXlUb09iamVjdCIsIiQzNjZkOTFhMjNlNjdhN2FhJHZhciRtZXJnZSIsIiQzNjZkOTFhMjNlNjdhN2FhJHZhciRhc3NpZ24iLCIkMzY2ZDkxYTIzZTY3YTdhYSR2YXIkZGVjb2RlIiwiJDM2NmQ5MWEyM2U2N2E3YWEkdmFyJGxpbWl0IiwiJDM2NmQ5MWEyM2U2N2E3YWEkdmFyJGVuY29kZSIsIiQzNjZkOTFhMjNlNjdhN2FhJHZhciRjb21wYWN0IiwiJDM2NmQ5MWEyM2U2N2E3YWEkdmFyJGlzUmVnRXhwIiwiJDM2NmQ5MWEyM2U2N2E3YWEkdmFyJGlzQnVmZmVyIiwiJDM2NmQ5MWEyM2U2N2E3YWEkdmFyJGNvbWJpbmUiLCIkMzY2ZDkxYTIzZTY3YTdhYSR2YXIkbWF5YmVNYXAiLCIkZjExY2Q1MDhlM2YyZTk0YyR2YXIkaGFzIiwiJGYxMWNkNTA4ZTNmMmU5NGMkdmFyJGFycmF5UHJlZml4R2VuZXJhdG9ycyIsIiRmMTFjZDUwOGUzZjJlOTRjJHZhciRpc0FycmF5IiwiJGYxMWNkNTA4ZTNmMmU5NGMkdmFyJHB1c2giLCIkZjExY2Q1MDhlM2YyZTk0YyR2YXIkcHVzaFRvQXJyYXkiLCIkZjExY2Q1MDhlM2YyZTk0YyR2YXIkdG9JU08iLCIkZjExY2Q1MDhlM2YyZTk0YyR2YXIkZGVmYXVsdEZvcm1hdCIsIiRmMTFjZDUwOGUzZjJlOTRjJHZhciRkZWZhdWx0cyIsIiRmMTFjZDUwOGUzZjJlOTRjJHZhciRpc05vbk51bGxpc2hQcmltaXRpdmUiLCIkZjExY2Q1MDhlM2YyZTk0YyR2YXIkc2VudGluZWwiLCIkZjExY2Q1MDhlM2YyZTk0YyR2YXIkc3RyaW5naWZ5IiwiTyIsImoiLCJUIiwiUCIsIkMiLCJOIiwiUiIsIiRmMTFjZDUwOGUzZjJlOTRjJHZhciRub3JtYWxpemVTdHJpbmdpZnlPcHRpb25zIiwiJDkyMGZlZTEzOGMyZjgyZjkkZXhwb3J0cyIsIiQ5MjBmZWUxMzhjMmY4MmY5JHZhciRoYXMiLCIkOTIwZmVlMTM4YzJmODJmOSR2YXIkaXNBcnJheSIsIiQ5MjBmZWUxMzhjMmY4MmY5JHZhciRkZWZhdWx0cyIsIiQ5MjBmZWUxMzhjMmY4MmY5JHZhciRpbnRlcnByZXROdW1lcmljRW50aXRpZXMiLCIkOTIwZmVlMTM4YzJmODJmOSR2YXIkcGFyc2VBcnJheVZhbHVlIiwiJDkyMGZlZTEzOGMyZjgyZjkkdmFyJGlzb1NlbnRpbmVsIiwiJDkyMGZlZTEzOGMyZjgyZjkkdmFyJGNoYXJzZXRTZW50aW5lbCIsIiQ5MjBmZWUxMzhjMmY4MmY5JHZhciRwYXJzZVZhbHVlcyIsIiQ5MjBmZWUxMzhjMmY4MmY5JHZhciRwYXJzZU9iamVjdCIsIiQ5MjBmZWUxMzhjMmY4MmY5JHZhciRwYXJzZUtleXMiLCIkOTIwZmVlMTM4YzJmODJmOSR2YXIkbm9ybWFsaXplUGFyc2VPcHRpb25zIiwiJDhmZDhkZWQ4ZGIzOGExODMkZXhwb3J0JDIzNWUyNjVhYzdlMDYzNiIsIiQ5Y2FiODI3MTBiOTc5ODE4JGV4cG9ydCQ3MTQ5YzZmZmM5OTk0YzMyIiwiJDljYWI4MjcxMGI5Nzk4MTgkZXhwb3J0JDE5ZThlMjgxZTI3ZGFmYWQiLCIkYzMwOWEzM2FlZDA1Y2JmYSRleHBvcnQkZTUyOWM2ODEwOTlmZTY0YiIsIiRkYzBmNTEwMTdhYzg1MTI1JGV4cG9ydCQyZTJiY2Q4NzM5YWUwMzkiLCIkMzdmY2M2MDBmMzBiOTRkZSRleHBvcnQkYmYyYTE1ZDM0ZjNjNDQxYyIsIiRmNjk4NDEzNmYyNzIyNmFmJGV4cG9ydHMiLCIkOTFlYTM1NTQ5YmVjMGJkOSRleHBvcnQkOWEyYjA2NGNhN2U4NjlmYiIsIiRjZTA0Y2M0MTVlODYxMjAwJGV4cG9ydCQ0MGEyNTRiNTRkYzI4ZmNkIiwiJDQ5YzAwMjdjMTljODU5NmUkdmFyJGlzQXJyYXkiLCIkNDljMDAyN2MxOWM4NTk2ZSR2YXIkZ2V0VGFnIiwiJDQ5YzAwMjdjMTljODU5NmUkdmFyJGJhc2VUb1N0cmluZyIsIiQ0OWMwMDI3YzE5Yzg1OTZlJHZhciR0b1N0cmluZyIsIiQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRpc1N0cmluZyIsIiQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRpc051bWJlciIsIiQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRpc0Jvb2xlYW4iLCIkNDljMDAyN2MxOWM4NTk2ZSR2YXIkaXNPYmplY3RMaWtlIiwiJDQ5YzAwMjdjMTljODU5NmUkdmFyJGlzT2JqZWN0IiwiJDQ5YzAwMjdjMTljODU5NmUkdmFyJGlzRGVmaW5lZCIsIiQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRpc0JsYW5rIiwiJDQ5YzAwMjdjMTljODU5NmUkdmFyJElOQ09SUkVDVF9JTkRFWF9UWVBFIiwiJDQ5YzAwMjdjMTljODU5NmUkdmFyJExPR0lDQUxfU0VBUkNIX0lOVkFMSURfUVVFUllfRk9SX0tFWSIsIiQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRQQVRURVJOX0xFTkdUSF9UT09fTEFSR0UiLCIkNDljMDAyN2MxOWM4NTk2ZSR2YXIkTUlTU0lOR19LRVlfUFJPUEVSVFkiLCIkNDljMDAyN2MxOWM4NTk2ZSR2YXIkSU5WQUxJRF9LRVlfV0VJR0hUX1ZBTFVFIiwiJDQ5YzAwMjdjMTljODU5NmUkdmFyJGhhc093biIsIiQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRLZXlTdG9yZSIsIiQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRjcmVhdGVLZXkiLCIkNDljMDAyN2MxOWM4NTk2ZSR2YXIkY3JlYXRlS2V5UGF0aCIsIiQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRjcmVhdGVLZXlJZCIsIiQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRnZXQiLCIkNDljMDAyN2MxOWM4NTk2ZSR2YXIkQ29uZmlnIiwiJDQ5YzAwMjdjMTljODU5NmUkdmFyJFNQQUNFIiwiJDQ5YzAwMjdjMTljODU5NmUkdmFyJG5vcm0iLCIkNDljMDAyN2MxOWM4NTk2ZSR2YXIkRnVzZUluZGV4IiwiJDQ5YzAwMjdjMTljODU5NmUkdmFyJGNyZWF0ZUluZGV4IiwiJDQ5YzAwMjdjMTljODU5NmUkdmFyJHBhcnNlSW5kZXgiLCIkNDljMDAyN2MxOWM4NTk2ZSR2YXIkY29tcHV0ZVNjb3JlJDEiLCIkNDljMDAyN2MxOWM4NTk2ZSR2YXIkY29udmVydE1hc2tUb0luZGljZXMiLCIkNDljMDAyN2MxOWM4NTk2ZSR2YXIkTUFYX0JJVFMiLCIkNDljMDAyN2MxOWM4NTk2ZSR2YXIkc2VhcmNoIiwiJDQ5YzAwMjdjMTljODU5NmUkdmFyJGNyZWF0ZVBhdHRlcm5BbHBoYWJldCIsIiQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRCaXRhcFNlYXJjaCIsIiQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRCYXNlTWF0Y2giLCIkNDljMDAyN2MxOWM4NTk2ZSR2YXIkZ2V0TWF0Y2giLCIkNDljMDAyN2MxOWM4NTk2ZSR2YXIkRXhhY3RNYXRjaCIsIiQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRJbnZlcnNlRXhhY3RNYXRjaCIsIiQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRQcmVmaXhFeGFjdE1hdGNoIiwiJDQ5YzAwMjdjMTljODU5NmUkdmFyJEludmVyc2VQcmVmaXhFeGFjdE1hdGNoIiwiJDQ5YzAwMjdjMTljODU5NmUkdmFyJFN1ZmZpeEV4YWN0TWF0Y2giLCIkNDljMDAyN2MxOWM4NTk2ZSR2YXIkSW52ZXJzZVN1ZmZpeEV4YWN0TWF0Y2giLCIkNDljMDAyN2MxOWM4NTk2ZSR2YXIkRnV6enlNYXRjaCIsIiQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRJbmNsdWRlTWF0Y2giLCIkNDljMDAyN2MxOWM4NTk2ZSR2YXIkc2VhcmNoZXJzIiwiJDQ5YzAwMjdjMTljODU5NmUkdmFyJHNlYXJjaGVyc0xlbiIsIiQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRTUEFDRV9SRSIsIiQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRPUl9UT0tFTiIsIiQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRwYXJzZVF1ZXJ5IiwiJDQ5YzAwMjdjMTljODU5NmUkdmFyJE11bHRpTWF0Y2hTZXQiLCIkNDljMDAyN2MxOWM4NTk2ZSR2YXIkRXh0ZW5kZWRTZWFyY2giLCIkNDljMDAyN2MxOWM4NTk2ZSR2YXIkcmVnaXN0ZXJlZFNlYXJjaGVycyIsIiQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRyZWdpc3RlciIsIiQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRjcmVhdGVTZWFyY2hlciIsIiQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRMb2dpY2FsT3BlcmF0b3IiLCIkNDljMDAyN2MxOWM4NTk2ZSR2YXIkS2V5VHlwZSIsIiQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRpc0V4cHJlc3Npb24iLCIkNDljMDAyN2MxOWM4NTk2ZSR2YXIkaXNQYXRoIiwiJDQ5YzAwMjdjMTljODU5NmUkdmFyJGlzTGVhZiIsIiQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRjb252ZXJ0VG9FeHBsaWNpdCIsIiQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRwYXJzZSIsIiQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRjb21wdXRlU2NvcmUiLCIkNDljMDAyN2MxOWM4NTk2ZSR2YXIkdHJhbnNmb3JtTWF0Y2hlcyIsIiQ0OWMwMDI3YzE5Yzg1OTZlJHZhciR0cmFuc2Zvcm1TY29yZSIsIiQ0OWMwMDI3YzE5Yzg1OTZlJHZhciRmb3JtYXQiLCIkNDljMDAyN2MxOWM4NTk2ZSRleHBvcnQkMmUyYmNkODczOWFlMDM5IiwiJGQ5MzkwOWQ3NzE1ODcxYjYkZXhwb3J0JDU1YWQ1Yzc3MzA2YmRjYWIiLCIkZDkzOTA5ZDc3MTU4NzFiNiR2YXIkZGVnMnJhZCIsIiRkOTM5MDlkNzcxNTg3MWI2JGV4cG9ydCRhYTM1MGI5NmQ5MWNkOTQiLCIkZDkzOTA5ZDc3MTU4NzFiNiR2YXIkZ2V0RGF0ZUluTXMiLCIkZDkzOTA5ZDc3MTU4NzFiNiR2YXIkZ2V0V2VlayIsIiRkOTM5MDlkNzcxNTg3MWI2JGV4cG9ydCQyOTNhN2VkZTkzNTRiZWUwIiwiJGQ5MzkwOWQ3NzE1ODcxYjYkdmFyJGZ1c2UiLCIkZDkzOTA5ZDc3MTU4NzFiNiRleHBvcnQkODMzMzI4ZWNkZTYzNzY3MyIsIiRjZWRmYmExY2RhZDVhZDU4JGV4cG9ydCQyZTJiY2Q4NzM5YWUwMzkiLCIkY2VkZmJhMWNkYWQ1YWQ1OCR2YXIkSXRlbXNGaWx0ZXIiLCIkY2VkZmJhMWNkYWQ1YWQ1OCR2YXIkQ2hlY2tlciIsIiRjZWRmYmExY2RhZDVhZDU4JHZhciROdW1iZXJGZXRjaFN0cmF0ZWd5IiwiJGNlZGZiYTFjZGFkNWFkNTgkdmFyJFJhbmdlRmV0Y2hTdHJhdGVneSIsIiRjZWRmYmExY2RhZDVhZDU4JHZhciRTdHJpbmdGZXRjaFN0cmF0ZWd5IiwiJGNlZGZiYTFjZGFkNWFkNTgkdmFyJGRhdGVGZXRjaFN0cmF0ZWd5IiwiJGNlZGZiYTFjZGFkNWFkNTgkdmFyJEJvb2xlYW5GZXRjaFN0cmF0ZWd5IiwiJGNlZGZiYTFjZGFkNWFkNTgkdmFyJFJlY3VycmluZ0RhdGVTdHJhdGVneSIsIiRjZWRmYmExY2RhZDVhZDU4JHZhciRNb250aEJlZm9yZURhdGVTdHJhdGVneSIsIiRjZWRmYmExY2RhZDVhZDU4JHZhciRBZ2dyZWdhdGUiLCIkOGE3M2Y0OWZjMDlkZTRmMCRleHBvcnQkYWE3ODczMDJlYzAzYmYyYSIsIiRlNGRkOGRlMDgxYjdiMjI5JGV4cG9ydHMiLCIkNTBlYWJiZDkwNjE4MTJkYiRleHBvcnQkMjQ2NmI2OWQ5ZDI2MDM3YyIsIiQ1MGVhYmJkOTA2MTgxMmRiJHZhciRnZXRQYXRoRm9ySXRlbXMiLCIkNTBlYWJiZDkwNjE4MTJkYiR2YXIkYmVzdE1hdGNoIiwiJDczNDM3NmJmYmFhYThiNzEkZXhwb3J0JDJjNjcxMGQwZjU3YTY0OTciLCIkNzM0Mzc2YmZiYWFhOGI3MSR2YXIkZ2V0RmllbGRCeUlkIiwiJDczNDM3NmJmYmFhYThiNzEkdmFyJGNvbXBhcmVUd29JdGVtc0J5RmllbGRJZCIsIiQ3MzQzNzZiZmJhYWE4YjcxJGV4cG9ydCRjZWM2NWRkZmZjODI1NzNlIiwiJDczNDM3NmJmYmFhYThiNzEkdmFyJG1lcmdlVHdvSXRlbXMiLCIkNzM0Mzc2YmZiYWFhOGI3MSR2YXIkY29tcGFyZUl0ZW1zQnlGaWVsZElkIiwiJDczNDM3NmJmYmFhYThiNzEkdmFyJGNvbXBhcmVJdGVtc0J5SXRlbUlkIiwiJDczNDM3NmJmYmFhYThiNzEkZXhwb3J0JGIwYzZiM2ExNDJkZWNiNWEiLCIkNzM0Mzc2YmZiYWFhOGI3MSR2YXIkY29tcGFyZVR3b0l0ZW1zIiwiJDczNDM3NmJmYmFhYThiNzEkdmFyJEl0ZW1zTWFwcGVyIiwiZWkiLCJNIiwiRiIsIkwiLCJEIiwicSIsIkIiLCJVIiwiJCIsIlciLCJHIiwiSCIsIlYiLCJlYSIsInoiLCJKIiwiUSIsIksiLCJYIiwiWSIsIloiLCJlZSIsImV0IiwiZXIiLCJlbiIsImVvIiwiZXMiLCJlbCIsImV1IiwiZWMiLCJlcCIsImVkIiwiZWgiLCJlZiIsImVOIiwiZW0iLCJlNiIsImVnIiwiZXkiLCJlTCIsImVfIiwiZXYiLCJlUiIsImViIiwiZTciLCJldyIsImVTIiwiZUUiLCJlQSIsImV4IiwiZUkiLCJlayIsImVPIiwiZWoiLCJlVCIsImVQIiwiZUMiLCJlTSIsInRlIiwiZUYiLCJlRCIsImVxIiwiZUIiLCJlVSIsImUkIiwiZVciLCJlRyIsImU4IiwiZUgiLCJlViIsImV6IiwiZUoiLCJlUSIsImVLIiwiZVgiLCJlWSIsImVaIiwiZTEiLCJlMCIsImUyIiwiZTMiLCJlNCIsImU1IiwiZTkiLCJ0dCIsInRyIiwidG4iLCJ0aSIsInRhIiwiJDdhNmJlNGMxY2Y0ZDdlNDAkZXhwb3J0JGU1ZTI1ZmJjYzFmN2FmZmUiLCIkNGMyZjhiMGQyZTIzZWU0ZiRleHBvcnQkMmUyYmNkODczOWFlMDM5IiwiJDRjMmY4YjBkMmUyM2VlNGYkdmFyJHBvcHVsYXRlSXRlbXNBbmRLZWVwT3RoZXJWYWx1ZXMiLCIkNGMyZjhiMGQyZTIzZWU0ZiR2YXIkcG9wdWxhdGVJdGVtc0FuZEVyYXNlT3RoZXJWYWx1ZXMiLCIkZmI1ZjAwYzRjM2MyM2Y1MCRleHBvcnRzIiwiJGYzWXd4IiwiJGZiNWYwMGM0YzNjMjNmNTAkcmVxdWlyZSRfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiJGZiNWYwMGM0YzNjMjNmNTAkdmFyJGFkZCIsIiRmYjVmMDBjNGMzYzIzZjUwJHZhciRfdHlwZW9mMiIsIiRmYjVmMDBjNGMzYzIzZjUwJHZhciRfaW5kZXgiLCIkZmI1ZjAwYzRjM2MyM2Y1MCR2YXIkX2luZGV4MiIsIiRmYjVmMDBjNGMzYzIzZjUwJHZhciRfaW5kZXgzIiwiJGZiNWYwMGM0YzNjMjNmNTAkdmFyJF9pbmRleDQiLCIkZmI1ZjAwYzRjM2MyM2Y1MCR2YXIkX2luZGV4NSIsIiQwNDg3ZTk4OTk0Y2M0OGQ4JGV4cG9ydHMiLCIkMDQ4N2U5ODk5NGNjNDhkOCRyZXF1aXJlJF9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCIkMDQ4N2U5ODk5NGNjNDhkOCR2YXIkc2V0RGF5IiwiJDA0ODdlOTg5OTRjYzQ4ZDgkdmFyJF9pbmRleCIsIiQwNDg3ZTk4OTk0Y2M0OGQ4JHZhciRfaW5kZXgyIiwiJDA0ODdlOTg5OTRjYzQ4ZDgkdmFyJF9pbmRleDMiLCIkMDQ4N2U5ODk5NGNjNDhkOCR2YXIkX2luZGV4NCIsIiRsbXlPaSIsIiQ2N2U1ZjQxMGY2MjlkNjg3JGV4cG9ydHMiLCIkNjdlNWY0MTBmNjI5ZDY4NyRyZXF1aXJlJF9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCIkNjdlNWY0MTBmNjI5ZDY4NyR2YXIkaXNTYW1lV2VlayIsIiQ2N2U1ZjQxMGY2MjlkNjg3JHZhciRfaW5kZXgiLCIkNjdlNWY0MTBmNjI5ZDY4NyR2YXIkX2luZGV4MiIsIiRjMzVmZWI2Y2VjNjQ4M2U3JGV4cG9ydCRmYjlmMDQ5ZjlmZWU0NzBjIiwiJGMzNWZlYjZjZWM2NDgzZTckdmFyJGdldFN0YXJ0RGF0ZSIsIiRjMzVmZWI2Y2VjNjQ4M2U3JGV4cG9ydCRhYTM1MGI5NmQ5MWNkOTQiLCIkYzM1ZmViNmNlYzY0ODNlNyRleHBvcnQkNmY3YWI1ODFmM2UwMDNmIiwiJDk4NTY5YjhhZDEwMzg1NDIkZXhwb3J0JDIzMjFhZWExMzhiNDQ3ODAiLCIkOTg1NjliOGFkMTAzODU0MiR2YXIkZGVlcG1lcmdlIiwiJDk4NTY5YjhhZDEwMzg1NDIkdmFyJGlzTWVyZ2VhYmxlT2JqZWN0IiwiJDk4NTY5YjhhZDEwMzg1NDIkdmFyJGVtcHR5VGFyZ2V0IiwiJDk4NTY5YjhhZDEwMzg1NDIkdmFyJGNsb25lSWZOZWNlc3NhcnkiLCIkOTg1NjliOGFkMTAzODU0MiR2YXIkZGVmYXVsdEFycmF5TWVyZ2UiLCIkOTg1NjliOGFkMTAzODU0MiR2YXIkbWVyZ2VPYmplY3QiLCIkODgzMWM5Y2UwMTc2N2YwOCRleHBvcnQkOTViZjg1MTdmODI1ZGNjMCIsIiQyMjc3YjRhNzNhZDMyMWNhJGV4cG9ydCQ5NWJmODUxN2Y4MjVkY2MwIiwiJDM1MjMyNzRjYTFhZDgzYjQkZXhwb3J0JDIxYzdlYTEzNWM1MjFjMjgiLCIkOWM1NjZlMmUxMDM4NzQyOSRleHBvcnQkMmUyYmNkODczOWFlMDM5IiwiJDlhZDEyOGMyOGVjYzkzMjAkZXhwb3J0JDJlMmJjZDg3MzlhZTAzOSIsIiRiZDVmYWViYTEwNjE4YjZhJGV4cG9ydCQyNTQxNWI2NGYyNDQ0YTk4IiwiJDg0MDExMWRkYzVmMjg5NTIkZXhwb3J0JDY5ZjQzNGFjZmJkYjBiMzIiLCIkNzg1NTU0ZWIxZjJjYzcwNiRleHBvcnQkMmUyYmNkODczOWFlMDM5IiwiJDU0MjY1Y2MwNDk4YTczZTEkZXhwb3J0JGFmM2UxOWZlZmE5ODkxNTQiLCIkMjkwNjUxYzhmMzQxNzI2MiRleHBvcnQkZjA1MDI3NjMyYjM4ZjNhNCIsIiRiN2FkMmI4NjE5YzU3N2I1JGV4cG9ydCRmOGE5YjhmYjZlMzQ1ZTFkIiwiJGI3YWQyYjg2MTljNTc3YjUkdmFyJF9jaGVja1Byb21pc2VTdGF0dXMiLCIkMGEwNjFiMTZjZmI4M2E1NyRleHBvcnQkNmIwNmZiOTM3NWNmMjIyNSIsIiQyMmZjM2RkY2YxN2ZjODQ4JGV4cG9ydCRkMmNhNDUzYjkxM2RjZGVhIiwiJDM1ODE5NmE1NWVkMGIwMTAkZXhwb3J0JDMzNGMyOTcyNWE3OGMyMWQiLCIka21jQVQiLCIkYTAxYzc4NzA1YmM0NjI4YSRleHBvcnQkMmUyYmNkODczOWFlMDM5IiwiJGFmZTM4NDkwMWUwMmE0MzgkZXhwb3J0JDJkMjY3OGNjY2Y2ZTQwMjIiLCIkNzRmYjEwZDVmYzMxZTY2OCRleHBvcnQkZTZjZTg2YjhiYzM5NzI4YiIsIiQ4MGNiOWIwNDIxYzY4M2Q4JGV4cG9ydCRiMjBlOWUwZjZmZmQwY2UwIiwiJDNjYWE5MzgyNWY1NWFlMWYkZXhwb3J0JGE1MjQ1YzliMjM1NWQxZjgiLCIkZTk5NzI0YzJkYmYxMGJlMiRleHBvcnQkZDM5ZDJhZGJiY2IzNWYwMSIsIiQxM2E3NDhiMTk2NTRlZjI0JGV4cG9ydCRkODA4ZDhhNjc2M2NlNDA3IiwiJDMxYzc4MGM0MjAxMTJiN2UkZXhwb3J0JDkyMGUxZTZiZWExYzgyOCIsIiQ4YTcxZWUyZGY5MDc0ZWYyJGV4cG9ydCRiMWE1MWEzMGVmMWY3MWViIiwiJDUzYzNiN2FhNjg5ZDI5YTkkZXhwb3J0JGRhM2QyYWIxOTAzY2IxODUiLCIkMzI4ZTcyNzk2YzE2ZDE4OSRleHBvcnQkYWYxZGQ5OGE1MmRjMzg4YyIsIiQzYThjNTI0ODI4ZTkyNzEzJGV4cG9ydCQ3ODFhMGIxODQ4ZWY1YmIiLCIkZTY0OTVlZjJmZmNlODg5NyRleHBvcnQkZjY5ZjVjODY0MGY3OGQwNSIsIiQ4YmY5ZDkwYWUyNDI4Njk0JGV4cG9ydCRlZWI1NjhiMjYxMDlkMzJkIiwiJDJlODkzMTk3ZmM2MDdkMDgkZXhwb3J0JGMwY2JkMTc0Y2I5ZWEzNTUiLCIkYTIwNjhhY2Q3NGUzYjNkOCR2YXIkZ3VkaHViIiwiJGEyMDY4YWNkNzRlM2IzZDgkdmFyJGFwcERhdGFTZXJ2aWNlIiwiJGEyMDY4YWNkNzRlM2IzZDgkdmFyJGNodW5rRGF0YVNlcnZpY2UiXSwibWFwcGluZ3MiOiIwQkFBQyxJQUFJLENBQUMsSUFBSUEsR0FBMENDLEdBQTBDQyxHQUEwQ0MsR0FB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QSxFQUFFLFlBQVksaUJBQWdCLENBQUUsQ0FBQ0EsRUFBRSxRQUFRLFNBQVNBLEVBQUUsQ0FBQyxPQUFPVyxFQUFFWCxDQUFDLEVBQUVBLEVBQUUsUUFBUUEsRUFBRSxTQUFTLENBQUUsRUFBQ0EsRUFBRSxLQUFLSSxFQUFFLEtBQUtKLEVBQUVBLEVBQUUsS0FBS0EsRUFBRSxRQUFRQSxFQUFFLGdCQUFnQixFQUFFQSxFQUFFLFFBQVFHLEVBQUUsTUFBTUgsRUFBRSxRQUFRLFFBQVEsQ0FBRSxFQUFDQSxFQUFFLFFBQVFBLEVBQUUsTUFBTSxHQUFHLEdBQUdBLEVBQUUsT0FBTyxFQUFFRyxFQUFFLFFBQVEsQ0FBQyxTQUFTLE1BQU0sT0FBTyxPQUFPLE1BQU0sUUFBUSxRQUFRLEVBQUUsU0FBU0QsRUFBRSxDQUFDLE9BQU9GLEVBQUUsUUFBUUUsQ0FBQyxDQUFDLENBQUMsR0FBR0YsRUFBRSxTQUFTVSxFQUFFLFNBQVNWLENBQUMsRUFBRSxLQUFLLFNBQVNFLEVBQUUsQ0FBQyxPQUFPUyxFQUFFWCxDQUFDLEVBQUVFLEVBQUUsS0FBS0UsRUFBRSxLQUFLSixFQUFFRSxFQUFFLEtBQUtBLEVBQUUsUUFBUUYsRUFBRSxpQkFBaUIsRUFBRUUsQ0FBQyxFQUFFLFNBQVNBLEVBQUUsQ0FBQyxNQUFNLENBQUNPLEVBQUVQLENBQUMsSUFBSVMsRUFBRVgsQ0FBQyxFQUFFRSxHQUFHQSxFQUFFLFdBQVdBLEVBQUUsU0FBUyxLQUFLRSxFQUFFLEtBQUtKLEVBQUVFLEVBQUUsU0FBUyxLQUFLQSxFQUFFLFNBQVMsUUFBUUYsRUFBRSxpQkFBaUIsSUFBSSxRQUFRLE9BQU9FLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUVNLEVBQWUsUUFBUSxTQUFTUixFQUFFRSxFQUFFLENBQUMsSUFBSUMsRUFBRUksRUFBYyxPQUFPLEVBQUVILEVBQUVHLEVBQWMsT0FBTyxFQUFFUCxFQUFFLFFBQVEsU0FBU0EsRUFBRUUsRUFBRU8sRUFBRSxDQUFDLElBQUlDLEVBQUUsTUFBTU4sRUFBRSxPQUFPRCxFQUFFLFFB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QU0scUJBQXFCLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLE1BQU0sS0FBSyxhQUFhLElBQUksQ0FBQyxHQUFHLFVBQVUsTUFBUyxDQUFDLElBQUlwRCxFQUFFLEVBQUUsSUFBSUQsR0FBRyxLQUFLLFlBQVksU0FBUyxFQUFFQSxDQUFDLENBQUMsRUFBRUUsRUFBRSxNQUFNLFFBQVEsSUFBSUQsQ0FBQyxFQUFFTSxFQUFFLE1BQU0sS0FBSyxPQUFPLEtBQUssWUFBWUwsQ0FBQyxFQUFFLE9BQU8sS0FBSyxnQkFBZ0IsRUFBRSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsV0FBV0ssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFdBQVdBLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0scUJBQXFCLEVBQUUsQ0FBQSxDQUFFLE1BQU0sd0JBQXdCLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUVMLEVBQUUsR0FBRyxFQUFFLE1BQU0sS0FBSyxhQUFhLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLE9BQU8sT0FBTyxNQUFNLE1BQUssRUFBRyxRQUFRSixLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVFBLENBQUMsR0FBRyxFQUFFLE9BQU8sUUFBUUEsQ0FBQyxJQUFJSSxFQUFFLEdBQUcsTUFBUyxDQUFDQSxFQUFFLEVBQUUsQ0FBQyxJQUFJTSxFQUFFLENBQUEsRUFBRyxFQUFFLENBQUUsRUFBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLE9BQU8sU0FBU0EsRUFBRSxFQUFFLE1BQU0sRUFBRSxPQUFPLE1BQU0sR0FBR04sSUFBSU0sRUFBRSxHQUFHQSxFQUFFLE9BQU8sRUFBRSxDQUFDLElBQUlSLEVBQUVRLEVBQUUsSUFBSVIsR0FBRyxLQUFLLFlBQVksU0FBUyxFQUFFQSxDQUFDLENBQUMsRUFBRSxFQUFFLE1BQU0sUUFBUSxJQUFJQSxDQUFDLENBQUMsQ0FBQyxPQUFPRSxJQUFJLEVBQUUsTUFBTSxLQUFLLE9B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R0FBRyxDQUFDLE1BQU0sZ0JBQWdCLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLE1BQU0sS0FBSyxJQUFJLEtBQUssQ0FBQyxJQUFJLGtCQUFrQixLQUFLLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxlQUFlLEdBQUcsQ0FBQyxPQUFPVixFQUFFLENBQUMsT0FBTyxRQUFRLElBQUlBLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxNQUFNLGFBQWEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLE1BQU0sS0FBSyxJQUFJLEtBQUssQ0FBQyxJQUFJLGtCQUFrQixLQUFLLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU9BLEVBQUUsQ0FBQyxPQUFPLFFBQVEsSUFBSUEsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLE1BQU0sYUFBYSxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sTUFBTSxLQUFLLElBQUksS0FBSyxDQUFDLElBQUksa0JBQWtCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBT0EsRUFBRSxDQUFDLE9BQU8sUUFBUSxJQUFJQSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsTUFBTSxlQUFlLENBQUMsR0FBRyxDQUFDLE9BQU8sTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksa0JBQWtCLENBQUMsR0FBRyxVQUFVLElBQUksSUFBSSxFQUFFLGVBQWUsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxRQUFRLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLHVCQUF1QixDQUFDLE9BQU8sS0FBSyxRQUFRLFlBQWEsQ0FBQSxDQUFDLGtCQUFrQixFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssUUFBUSxPQUFPLENBQUMsRUFBRSxPQUFPLEdBQUcsRUFBRSxXQUFXLE9BQU8sRUFBRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxPQUFPLEtBQUssUUFB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QixJQUFJRSxFQUFFLElBQUlGLEVBQUUscUJBQXFCLEtBQUssYUFBYSxXQUFXLFNBQVMsRUFBRSxDQUFDLFVBQVUsVUFBVSxLQUFLLFNBQVMsS0FBSyxvQkFBb0IsSUFBSUUsRUFBRSxJQUFJRixFQUFFLGtCQUFrQixLQUFLLGFBQWEsV0FBVyxTQUFTLEVBQUUsQ0FBQyxVQUFVLGtCQUFrQixLQUFLLGtCQUFrQixLQUFLLGtCQUFrQixJQUFJRSxFQUFFLElBQUlGLEVBQUUsMEJBQTBCLEtBQUssYUFBYSxXQUFXLFNBQVMsRUFBRSxDQUFDLFVBQVUsbUJBQW1CLEtBQUssbUJBQW1CLEtBQUssT0FBTyxJQUFJRSxFQUFFLElBQUlGLEVBQUUsMkJBQTJCLEtBQUssYUFBYSxXQUFXLFNBQVMsRUFBRSxDQUFDLFVBQVUsV0FBVyxLQUFLLFdBQVcsS0FBSyxzQkFBc0IsSUFBSUUsRUFBRSxJQUFJRixFQUFFLG1CQUFtQixLQUFLLGFBQWEsV0FBVyxTQUFTLEVBQUUsQ0FBQyxVQUFVLGFBQWEsS0FBSyxhQUFhLEtBQUssc0JBQXNCLElBQUlFLEVBQUUsSUFBSUYsRUFBRSxxQkFBcUIsS0FBSyxhQUFhLFdBQVcsU0FBUyxFQUFFLENBQUMsVUFBVSxhQUFhLEtBQUssYUFBYSxLQUFLLGFBQWEsSUFBSUUsRUFBRSxJQUFJRixFQUFFLHFCQUFxQixLQUFLLGFBQWEsV0FBVyxTQUFTLEVBQUUsQ0FBQyxVQUFVLGFBQWEsS0FBSyxhQUFhLEtBQUssYUFBYSxJQUFJRSxFQUFFLElBQUlGLEVBQUUscUJBQXFCLEtBQUssYUFBYSxXQUFXLFNBQVMsRUFBRSxDQUFDLFVBQVUsUUFBUSxLQUFLLFFBQVEsS0FBSyxtQkFBbUIsSUFBSUUsRUFBRSxJQUFJRixFQUFFLGdCQUFnQixLQUFLLGFBQWEsV0FBVyxTQUFTLEVBQUUsQ0FBQyxVQUFVLFVBQVUsS0FBSyxVQUFVLEtBQUsscUJBQXFCLElBQUlFLEVBQUUsSUFBSUYsRUFBRSxrQkFBa0IsS0FBSyxhQUFhLFdBQVcsU0FBUyxFQUFFLENBQUMsVUFBVSxrQkFBa0IsS0FBSyxr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WUFBWSxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssVUFBVSxDQUFBLEVBQUcsS0FBSyxXQUFXLEdBQUcsS0FBSyxLQUFLLENBQUUsRUFBQyxLQUFLLFlBQVlELEdBQXlDLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxxQkFBcUIsQ0FBRSxDQUFBLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQUMsU0FBUyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sS0FBSyxVQUFVLENBQUMsZUFBZSxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQWdCLElBQVQsT0FBVyxLQUFLLFlBQWdCLEdBQUosR0FBTSxLQUFLLFlBQVksT0FBT3BTLEdBQUdBLEVBQUUsWUFBWUEsRUFBRSxPQUFPLEdBQUdBLEVBQUUsU0FBU0EsRUFBRSxZQUFZLFNBQVMsQ0FBQyxFQUFFQSxFQUFFLE9BQU8sR0FBRyxDQUFDQSxFQUFFLE9BQU8sRUFBRSxLQUFLLFlBQVksT0FBT0EsR0FBR0EsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDLE9BQU8sS0FBSyxZQUFZLEtBQUssR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxLQUFLLEVBQUUsS0FBSyxXQUFXLEtBQUssQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUUsRUFBQyxDQUFDLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxXQUFXLElBQUksSUFBSSxLQUFJLEVBQUcsUUFBUyxHQUFFLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxXQUFXLElBQUksSUFBSSxLQUFJLEVBQUcsV0FBVyxLQUFLLEtBQUssQ0FBQyxHQUFHLEtBQUssS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLFdBQVcsS0FBSyxXQUFXLE9BQU8sR0FBRyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxXQUFXLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxLQUFLLENBQUEsQ0FBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsS0FBSyxVQUFVLE9BQU8sSUFBSSxHQUFHLEtBQUssVUFBVSxDQUFDLEVBQUUsUUFBUSxFQUFFLE9BQU8sS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLFVBQVUsQ0FBQSxDQUFFLENBQUMsVUFBVSxFQUFFLENBQUMsT0FBTyxLQUFLLFVBQVUsS0FBSyxVQUFVLElBQUksR0FBRyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEtBQUssU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDLE9BQU8sS0FBSyxVQUFVLEtBQUssVUFBVSxPQUFPLEdBQUcsRUFBRSxRQUFRLENBQUMsRUFBRSxLQUFLLFNBQVMsQ0FBQyxNQUFNLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxLQUFLLE9BQU8sQ0FBQyxFQUFFLE9BQU8sSUFBSSxFQUFFLFdBQVcsWUFBWSxFQUFFLEVBQUUsV0FBVyxLQUFLLFlBQVksS0FBSyxLQUFLLEtBQUssV0FBVyxFQUFFLENBQUMsRUFBRSxLQUFLLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLGNBQWMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE1BQU0sS0FBSyxPQUFPLENBQUMsRUFBRSxPQUFPLElBQUksRUFBRSxXQUFXLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxVQUFVLENBQUMsRUFBRSxLQUFLLFlBQVksS0FBSyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0saUJBQWlCLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxNQUFNLEtBQUssT0FBTyxDQUFDLEVBQUUsT0FBTyxJQUFJLEVBQUUsV0FBVyxFQUFFLFdBQVcsT0FBT0EsR0FBRyxDQUFDLEVBQUUsS0FBS0YsR0FBR0EsRUFBRSxTQUFTRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEtBQUssVUFBVSxDQUFDLEdB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Q0FBQyxFQUFFLEtBQUssTUFBTSxFQUFFLEtBQUssVUFBVSxHQUFHLEtBQUssZ0JBQWlCLENBQUEsQ0FBQyxXQUFXLEVBQUUsQ0FBQSxFQUFHLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBLEVBQUcsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFFLEVBQUMsQ0FBQyxLQUFLLEtBQUssRUFBRSxLQUFLLFNBQVMsQ0FBRSxFQUFDLEVBQUUsUUFBUSxDQUFDblUsRUFBRUUsSUFBSSxDQUFDLEtBQUssU0FBU0YsRUFBRSxFQUFFLEVBQUVFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxXQUFXLEtBQUssS0FBSyxTQUFTLEtBQUssVUFBVSxHQUFHNlMsR0FBK0IsS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssS0FBSyxRQUFRLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEtBQUssUUFBUSxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxLQUFLLE1BQUssRUFBRyxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEtBQUksRUFBR0EsR0FBK0IsQ0FBQyxFQUFFLEtBQUssV0FBVyxFQUFFLENBQUMsRUFBRSxLQUFLLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxLQUFLLFFBQVEsT0FBTyxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEtBQUssS0FBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxRQUFRLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEtBQUssUUFBUSxNQUFNLENBQUMsV0FBVyxFQUFF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QU8sT0FBTyxDQUFDLEVBQUUsT0FBT0MsR0FBRyxJQUFJQyxFQUFFLFFBQVFILEdBQUdHLENBQUMsQ0FBQyxDQUFDLE1BQU00VCxFQUErQixDQUFDLFlBQVksRUFBRSxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUMsT0FBTyxhQUFhLEVBQUUsQ0FBQyxPQUFPQyxHQUErQixFQUFFLEtBQUssVUFBVSxDQUFDLENBQUMsT0FBTyxjQUFjLEVBQUUsQ0FBQyxPQUFPQSxHQUErQixFQUFFLEtBQUssV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFFLENBQUEsQ0FBQyxTQUFTQSxHQUErQjlVLEVBQUVFLEVBQUUsQ0FBQyxJQUFJQyxFQUFFSCxFQUFFLE1BQU1FLENBQUMsRUFBRSxPQUFPQyxFQUFFQSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTTRVLFdBQXlDRixFQUErQixDQUFDLFlBQVksRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsV0FBVyxNQUFNLENBQUMsTUFBTSxPQUFPLENBQUMsV0FBVyxZQUFZLENBQUMsTUFBTSxXQUFXLENBQUMsV0FBVyxhQUFhLENBQUMsTUFBTSxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksS0FBSyxRQUFRLE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsRUFBRSxLQUFLLFFBQVEsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTUcsV0FBZ0RILEVBQStCLENBQUMsWUFBWSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxXQUFXLE1BQU0sQ0FBQyxNQUFNLGVBQWUsQ0FBQyxXQUFXLFlBQVksQ0FBQyxNQUFNLFdBQVcsQ0FBQyxXQUFXLGFBQWEsQ0FBQyxNQUFNLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQU8sRUFBRSxRQUFRLEtBQUssT0FBTyxJQUEzQixHQUE2QixNQUFNLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLEVBQUUs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LElBQWhCLEVBQWlCLENBQUMsQ0FBQyxFQUFFLE1BQU0sSUFBSSxpQkFBaUIsS0FBSyxTQUFTLFNBQVNGLEVBQUVFLEVBQUUsQ0FBQyxPQUFPQSxFQUFFLEtBQUtBLEdBQUdGLEVBQUUsTUFBTUEsR0FBUUEsRUFBRSxRQUFRRSxDQUFDLElBQWhCLEVBQWlCLENBQUMsQ0FBQyxFQUFFLE1BQU0sSUFBSSxrQkFBa0IsS0FBSyxTQUFTLFNBQVNGLEVBQUVFLEVBQUUsQ0FBQyxPQUFPQSxFQUFFLE1BQU1BLEdBQUdGLEVBQUUsTUFBTUEsR0FBUUEsRUFBRSxRQUFRRSxDQUFDLElBQWhCLEVBQWlCLENBQUMsQ0FBQyxFQUFFLE1BQU0sSUFBSSxXQUFXLEtBQUssU0FBUyxTQUFTRixFQUFFRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUNGLEVBQUUsUUFBUUEsRUFBRSxLQUFLQSxHQUFHRSxFQUFFLEtBQUtBLEdBQUdGLEdBQUdFLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxJQUFJLFlBQVksS0FBSyxTQUFTLFNBQVNGLEVBQUVFLEVBQUUsQ0FBQyxHQUFHLENBQUNGLEVBQUUsT0FBTyxNQUFRLEdBQUMsSUFBSUcsRUFBRSxJQUFJLElBQUlELENBQUMsRUFBRSxLQUFLRixFQUFFLFFBQVFHLEVBQUUsTUFBTSxDQUFDLElBQUlELEVBQUVGLEVBQUUsSUFBSyxFQUFDRyxFQUFFLElBQUlELENBQUMsR0FBR0MsRUFBRSxPQUFPRCxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUNDLEVBQUUsSUFBSSxFQUFFLE1BQU0sSUFBSSxlQUFlLEtBQUssU0FBUyxTQUFTSCxFQUFFRSxFQUFFLENBQUMsR0FBRyxDQUFDRixFQUFFLE9BQU8sTUFBUSxHQUFDLElBQUlHLEVBQUUsSUFBSSxJQUFJRCxDQUFDLEVBQUUsS0FBS0YsRUFBRSxRQUFRRyxFQUFFLE1BQU0sQ0FBQyxJQUFJRCxFQUFFRixFQUFFLElBQUssRUFBQyxHQUFHLENBQUNHLEVBQUUsSUFBSUQsQ0FBQyxFQUFFLE1BQVEsRUFBQSxDQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sSUFBSSxnQkFBZ0IsS0FBSyxTQUFTLFNBQVNGLEVBQUVFLEVBQUUsQ0FBQyxJQUFJQyxFQUFFLElBQUksSUFBSUQsQ0FBQyxFQUFFLEtBQUtGLEVBQUUsUUFBUUcsRUFBRSxNQUFNLENBQUMsSUFBSUQsRUFBRUYsRUFBRSxJQUFLLEVBQUMsR0FBR0csRUFBRSxJQUFJRCxDQUFDLEVBQUUsTUFBUSxFQUFBLENBQUMsTUFBUSxFQUFBLEVBQUUsTUFBTSxJQUFJLFNBQVMsS0FBSyxTQUFTLFNBQVNGLEVBQUVFLEVBQUUsQ0FBQyxPQUFPQSxFQUFFLEtBQUtBLEdBQUdGLEVBQUUsTUFBTUEsR0FBR0EsRUFBRUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLElBQUksUUFBUSxLQUFLLFNBQVMsU0FBU0YsRUFBRUUsRUFBRSxDQUFDLE9BQU9BLEVBQUUsS0FBS0EsR0FBR0YsRUFBRSxNQUFNQSxHQUFHQSxFQUFFRSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sSUFBSSxRQUFRLEtBQUssU0FBUyxTQUFTRixFQUFFRSxFQUFFLENBQUMsT0FBT0EsRUFBRSxLQUFLQSxHQUFHRixFQUFFLE1BQU1BLEdBQUdFLEVBQUUsT0FBT0YsR0FBR0EsRUFBRUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLE1BQU0sSUFBSSxRQUFRLEtBQUssU0FBUyxTQUFTRixFQUFFRSxFQUFFLENBQUMsT0FBT0EsRUFBRSxLQUFLQSxHQUFHRixFQUFFLEtBQUtBLEdBQUdBLEdBQUdFLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxJQUFJLFNBQVMsS0FBSyxTQUFTLFNBQVNGLEVBQUVFLEVBQUUsQ0FBQyxPQUFPQSxFQUFFLEtBQUtBLEdBQUdrWCxHQUEwQ2xYLEVBQUVGLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxJQUFJLGlCQUFpQixLQUFLLFNBQVMsU0FBU0EsRUFBRUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDRixFQUFFLFFBQVFFLEVBQUUsS0FBS0EsR0FBR0YsRUFBRSxLQUFLQSxHQUFRQSxFQUFFLFFBQVEsVUFB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QUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsY0FBYyxTQUFTQSxFQUFFRyxFQUFFQyxFQUFFSyxFQUFFQyxFQUFFQyxFQUFFQyxFQUFFLENBQUNILEVBQUUsTUFBTUEsRUFBRSxJQUFJUCxFQUFFQSxFQUFFLFdBQVUsR0FBSSxJQUFJVyxFQUFFRixFQUFFLE9BQU8sRUFBRSxPQUFPRCxFQUFHLENBQUEsSUFBSyxHQUFFLE9BQU9ELEVBQUUsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssT0FBTyxNQUFNRSxFQUFFRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUVKLEVBQUUsSUFBSSxRQUFTLEVBQUNBLEVBQUUsSUFBSSxNQUFPLEVBQUMsSUFBSyxHQUFFLE9BQU9BLEVBQUUsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssT0FBTyxNQUFNRSxFQUFFRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRUosRUFBRSxJQUFJLFFBQVMsRUFBQ0EsRUFBRSxJQUFJLE1BQUssRUFBRyxJQUFLLEdBQUUsT0FBT0EsRUFBRSxJQUFJLFFBQU8sRUFBR0EsRUFBRSxJQUFJLE1BQUssRUFBRyxJQUFLLEdBQUUsT0FBT0EsRUFBRSxJQUFJLElBQUksQ0FBQyxVQUFVLFNBQVMsTUFBTSxRQUFRLFdBQVcsQ0FBQyxLQUFLLGFBQWEsTUFBTUUsRUFBRUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUVKLEVBQUUsSUFBSSxRQUFTLEVBQUNBLEVBQUUsSUFBSSxNQUFPLEVBQUMsSUFBSyxHQUFFLElBQUssR0FBRSxJQUFLLElBQUcsSUFBSyxJQUFHLElBQUssSUFBRyxJQUFLLElBQUcsSUFBSyxJQUFHLElBQUssSUFBRyxNQUFNLElBQUssR0FBRUEsRUFBRSxJQUFJLElBQUksQ0FBQyxVQUFVLFFBQVEsQ0FBQyxFQUFFQSxFQUFFLElBQUksS0FBSSxFQUFHLE1BQU0sSUFBSyxHQUFFQSxFQUFFLElBQUksSUFBSSxDQUFDLFVBQVUsV0FBVyxDQUFDLEVBQUVBLEVBQUUsSUFBSSxLQUFNLEVBQUMsTUFBTSxJQUFLLEdBQUUsSUFBSyxJQUFHQSxFQUFFLElBQUksSUFBSSxDQUFDLE1BQU0sT0FBTyxDQUFDLEVBQUUsTUFBTSxJQUFLLElBQUcsSUFBSyxJQUFHQSxFQUFFLElBQUksSUFBSSxDQUFDLE1BQU0sWUFBWSxDQUFDLEVBQUUsTUFBTSxJQUFLLElBQUdBLEVBQUUsSUFBSSxJQUFJLENBQUMsTUFBTSxRQUFRLFVBQVUsUUFBUSxDQUFDLEVBQUUsTUFBTSxJQUFLLElBQUdBLEVBQUUsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssV0FBVyxNQUFNRSxFQUFFRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxJQUFLLElBQUdKLEVBQUUsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssYUFBYSxNQUFNRSxFQUFFRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxJQUFLLElBQUdKLEVBQUUsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssb0JBQW9CLE1BQU1FLEVBQUVFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLElBQUssSUFBR0osRUFBRSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxrQkFBa0IsTUFBTSxTQUFTRSxFQUFFRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLElBQUssSUFBR0YsRUFBRUUsQ0FBQyxFQUFFLE9BQU8sRUFBRUosRUFBRSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxRQUFRLE1BQU1FLEVBQUVFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUVGLEVBQUVFLENBQUMsRUFBRSxNQUFNLElBQUssSUFBRyxLQUFLLEVBQUUsQ0FBQ0YsRUFBRUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxJQUFLLElBQUcsS0FBSyxFQUFFRixFQUFFRSxFQUFFLENBQUMsRUFBRSxPQUFPRixFQUFFRSxDQUFDLENBQUMsRUFBRSxNQUFNLElBQUssSUFBRyxLQUFLLEVBQUUsQ0FBQyxXQUFXLENBQUMsS0FBSyxrQkFBa0IsTUFBTSxTQUFTRixFQUFFRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUVKLEVBQUUsSUFBSSxJQUFJLEtBQUssQ0FBQyxFQUFFLE1BQU0sSUFBSyxJQUFHLEtBQUssRUFBRSxDQUFDLFdBQVcsQ0FBQyxLQUFLLGlCQUFpQixNQUFNRSxFQUFFRSxDQUFDLENBQUMsQ0FBQyxFQUFFSixFQUFFLElBQUksSUFBSSxLQUFLLENBQUMsRUFBRSxNQUFNLElBQUssSUFBRyxLQUFLLEVBQUUsQ0FBQyxXQUFXLENBQUMsS0FBSyxRQUFRLE1BQU1FLEVBQUVFLENBQUMsQ0FBQyxDQUFDLEVBQUVKLEVBQUUsSUFBSSxJQUFJLEtBQUssQ0FBQyxFQUFFLE1BQU0sSUFBSyxJQUFHLEtBQUssRUFBRSxDQUFDLFdBQVcsQ0FBQyxLQUFLLFdBQVcsTUFBTUUsRUFBRUUsQ0FBQyxDQUFDLENBQUMsRUFBRUosRUFBRSxJQUFJLElBQUksS0FBSyxDQUFDLEVBQUUsTUFBTSxJQUFLLElBQUcsS0FBSyxFQUFFLENBQUMsV0FBVyxDQUFDLEtBQUssb0JBQW9CLE1BQU1FLEVBQUVFLENBQUMsQ0FBQyxDQUFDLEVBQUVKLEVBQUUsSUFBSSxJQUFJLEtBQUssQ0FBQyxFQUFFLE1BQU0sSUFBSyxJQUFHLEtBQUssRUFBRSxDQUFDLFdBQVcsQ0FBQyxLQUFLLG9CQUFvQixNQUFNRSxFQUFFRSxDQUFDLENBQUMsQ0FBQyxFQUFFSixFQUFFLElBQUksSUFBSSxLQUFLLENBQUMsRUFBRSxNQUFNLElBQUssSUFBRyxJQUFLLElBQUcsS0FBSyxFQUFFRSxFQUFFRSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxXQUFXLFNBQVNiLEVBQUVFLEVBQUUsQ0FBQyxHQUFHQSxFQUFFLFlBQVksS0FBSyxNQUFNRixDQUFDLE1BQU8sT0FBTSxNQUFNQSxDQUFDLENBQUMsRUFBRSxNQUFNLFNBQVNBLEVBQUUsQ0FBQyxJQUFJRSxFQUFFLEtBQUtDLEVBQUUsQ0FBQyxDQUFDLEVBQUVDLEVBQUUsQ0FBQyxJQUFJLEVBQUVLLEVBQUUsQ0FBQSxFQUFHQyxFQUFFLEtBQUssTUFBTUMsRUFBRSxHQUFHQyxFQUFFLEVBQUVDLEVBQUUsRUFBRUMsRUFBRSxFQUFFQyxFQUFFLEVBQUVDLEVBQUUsRUFBRUMsRUFBRVIsRUFBRSxNQUFNLEtBQUssVUFBVSxDQUFDLEVBQUUsS0FBSyxNQUFNLFNBQVNULENBQUMsRUFBRSxLQUFLLE1BQU0sR0FBRyxLQUFLLEdBQUcsS0FBSyxHQUFHLE1BQU0sS0FBSyxNQUFNLEtBQUssR0FBRyxPQUFPLEtBQWMsS0FBSyxNQUFNLFNBQXBCLFNBQTZCLEtBQUssTUFBTSxPQUFPLENBQUUsR0FBRSxJQUFJa0IsRUFBRSxLQUFLLE1BQU0sT0FBT1QsRUFBRSxLQUFLUyxDQUFDLEVBQUUsSUFBSUcsRUFBRSxLQUFLLE1BQU0s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QUMsS0FBSyxPQUFPLFFBQVEsS0FBSyxLQUFLLEVBQUUsS0FBSyxNQUFNLEVBQUUsRUFBRSxNQUFNLFVBQVUsQ0FBQyxJQUFJQSxFQUFFLEtBQUssT0FBTyxPQUFPLEtBQUssV0FBWSxFQUFDQSxDQUFDLENBQUMsRUFBRSxTQUFTRyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUUsQ0FBQSxDQUFDLE9BQU9ILEVBQUUsTUFBTSxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxXQUFXLFNBQVNBLEVBQUVFLEVBQUUsQ0FBQyxHQUFHLEtBQUssR0FBRyxPQUFPLEtBQUssR0FBRyxPQUFPLFdBQVdGLEVBQUVFLENBQUMsTUFBTyxPQUFNLE1BQU1GLENBQUMsQ0FBQyxFQUFFLFNBQVMsU0FBU0EsRUFBRSxDQUFDLE9BQU8sS0FBSyxPQUFPQSxFQUFFLEtBQUssTUFBTSxLQUFLLFdBQVcsS0FBSyxLQUFLLEdBQUcsS0FBSyxTQUFTLEtBQUssT0FBTyxFQUFFLEtBQUssT0FBTyxLQUFLLFFBQVEsS0FBSyxNQUFNLEdBQUcsS0FBSyxlQUFlLENBQUMsU0FBUyxFQUFFLEtBQUssT0FBTyxDQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLFlBQVksQ0FBQyxFQUFFLEtBQUssUUFBUSxTQUFTLEtBQUssT0FBTyxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sVUFBVSxDQUFDLElBQUlBLEVBQUUsS0FBSyxPQUFPLENBQUMsRUFBRSxPQUFPLEtBQUssUUFBUUEsRUFBRSxLQUFLLFNBQVMsS0FBSyxTQUFTLEtBQUssT0FBT0EsRUFBRSxLQUFLLFNBQVNBLEVBQUVBLEVBQUUsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLFdBQVcsS0FBSyxPQUFPLGFBQWEsS0FBSyxPQUFPLGNBQWMsS0FBSyxRQUFRLFFBQVEsS0FBSyxPQUFPLE1BQU0sQ0FBQyxJQUFJLEtBQUssT0FBTyxLQUFLLE9BQU8sTUFBTSxDQUFDLEVBQUVBLENBQUMsRUFBRSxNQUFNLFNBQVNBLEVBQUUsQ0FBQyxJQUFJRSxFQUFFRixFQUFFLE9BQU9HLEVBQUVILEVBQUUsTUFBTSxlQUFlLEVBQUUsS0FBSyxPQUFPQSxFQUFFLEtBQUssT0FBTyxLQUFLLE9BQU8sS0FBSyxPQUFPLE9BQU8sRUFBRSxLQUFLLE9BQU8sT0FBT0UsRUFBRSxDQUFDLEVBQUUsS0FBSyxRQUFRQSxFQUFFLElBQUlFLEVBQUUsS0FBSyxNQUFNLE1BQU0sZUFBZSxFQUFFLEtBQUssTUFBTSxLQUFLLE1BQU0sT0FBTyxFQUFFLEtBQUssTUFBTSxPQUFPLENBQUMsRUFBRSxLQUFLLFFBQVEsS0FBSyxRQUFRLE9BQU8sRUFBRSxLQUFLLFFBQVEsT0FBTyxDQUFDLEVBQUVELEVBQUUsT0FBTyxJQUFJLEtBQUssVUFBVUEsRUFBRSxPQUFPLEdBQUcsSUFBSU0sRUFBRSxLQUFLLE9BQU8sTUFBTSxPQUFPLEtBQUssT0FBTyxDQUFDLFdBQVcsS0FBSyxPQUFPLFdBQVcsVUFBVSxLQUFLLFNBQVMsRUFBRSxhQUFhLEtBQUssT0FBTyxhQUFhLFlBQVlOLEdBQUdBLEVBQUUsU0FBU0MsRUFBRSxPQUFPLEtBQUssT0FBTyxhQUFhLEdBQUdBLEVBQUVBLEVBQUUsT0FBT0QsRUFBRSxNQUFNLEVBQUUsT0FBT0EsRUFBRSxDQUFDLEVBQUUsT0FBTyxLQUFLLE9BQU8sYUFBYUQsQ0FBQyxFQUFFLEtBQUssUUFBUSxTQUFTLEtBQUssT0FBTyxNQUFNLENBQUNPLEVBQUUsQ0FBQyxFQUFFQSxFQUFFLENBQUMsRUFBRSxLQUFLLE9BQU9QLENBQUMsR0FBRyxLQUFLLE9BQU8sS0FBSyxPQUFPLE9BQU8sSUFBSSxFQUFFLEtBQUssVUFBVSxDQUFDLE9BQU8sS0FBSyxNQUFNLEdBQUcsSUFBSSxFQUFFLE9BQU8sVUFBVSxDQUFDLE9BQU8sS0FBSyxRQUFRLGlCQUFpQixLQUFLLFdBQVcsR0FBRyxNQUFNLEtBQUssV0FBVywwQkFBMEIsS0FBSyxTQUFTLEdBQUc7QUFBQSxFQUFtSSxLQUFLLGFBQVksRUFBRyxDQUFDLEtBQUssR0FBRyxNQUFNLEtBQUssS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLEVBQUUsS0FBSyxTQUFTRixFQUFFLENBQUMsS0FBSyxNQUFNLEtBQUssTUFBTSxNQUFNQSxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsVUFBVSxDQUFDLElBQUlBLEVBQUUsS0FBSyxRQUFRLE9BQU8sRUFBRSxLQUFLLFFBQVEsT0FBTyxLQUFLLE1BQU0sTUFBTSxFQUFFLE9BQU9BLEVBQUUsT0FBTyxHQUFHLE1BQU0sSUFBSUEsRUFBRSxPQUFPLEdBQUcsRUFBRSxRQUFRLE1BQU0sRUFBRSxDQUFDLEVBQUUsY0FBYyxVQUFVLENBQUMsSUFBSUEsRUFBRSxLQUFLLE1BQU0sT0FBT0EsRUFBRSxPQUFPLEtBQUtBLEdBQUcsS0FBSyxPQUFPLE9BQU8sRUFBRSxHQUFHQSxFQUFFLE1BQU0sSUFBSUEsRUFBRSxPQUFPLEVBQUUsRUFBRSxHQUFHQSxFQUFFLE9BQU8sR0FBRyxNQUFNLEtBQUssUUFBUSxNQUFNLEVBQUUsQ0FBQyxFQUFFLGFBQWEsVUFBVSxDQUFDLElBQUlBLEVBQUUsS0FBSyxVQUFXLEVBQUNFLEVBQUUsTUFBTUYsRUFBRSxPQUFPLENBQUMsRUFBRSxLQUFLLEdBQUcsRUFBRSxPQUFPQSxFQUFFLEtBQUssY0FBYSxFQUFHO0FBQUEsRUFBS0UsRUFBRSxHQUFHLEVBQUUsV0FBVyxTQUFTRixFQUFFRSxFQUFFLENBQUMsSUFBSUMsRUFBRUMsRUFBRUssRUFBRSxHQUFHLEtBQUssUUFBUSxrQkFBa0JBLEVBQUUsQ0FBQyxTQUFTLEtBQUssU0FBUyxPQUFPLENBQUMsV0FBVyxLQUFLLE9BQU8sV0FBVyxVQUFVLEtBQUssVUFBVSxhQUFhLEtBQUssT0FBTyxhQUFhLFlBQVksS0FBSyxPQUFPLFdBQVcsRUFBRSxPQUFPLEtBQUssT0FBTyxNQUFNLEtBQUssTUFBTSxRQUFRLEtBQUssUUFBUSxRQUFRLEtBQUssUUFBUSxPQUFPLEtBQUssT0FBTyxPQUFPLEtBQUssT0FBTyxNQUFNLEtBQUssTUFBTSxPQUFPLEtBQUssT0FBTyxHQUFHLEtBQUssR0FBRyxl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QyxDQUFDLEVBQUUsY0FBYyxVQUFVLENBQUMsT0FBTyxLQUFLLGVBQWUsUUFBUSxLQUFLLGVBQWUsS0FBSyxlQUFlLE9BQU8sQ0FBQyxFQUFFLEtBQUssV0FBVyxLQUFLLGVBQWUsS0FBSyxlQUFlLE9BQU8sQ0FBQyxDQUFDLEVBQUUsTUFBTSxLQUFLLFdBQVcsUUFBUSxLQUFLLEVBQUUsU0FBUyxTQUFTQSxFQUFFLENBQUMsT0FBT0EsRUFBRSxLQUFLLGVBQWUsT0FBTyxFQUFFLEtBQUssSUFBSUEsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLGVBQWVBLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxTQUFTQSxFQUFFLENBQUMsS0FBSyxNQUFNQSxDQUFDLENBQUMsRUFBRSxlQUFlLFVBQVUsQ0FBQyxPQUFPLEtBQUssZUFBZSxNQUFNLEVBQUUsUUFBUSxDQUFFLEVBQUMsY0FBYyxTQUFTQSxFQUFFRSxFQUFFQyxFQUFFQyxFQUFFLENBQUMsT0FBT0QsRUFBQyxDQUFFLElBQUssR0FBRSxNQUFPLEdBQUUsSUFBSyxHQUFFLE1BQU8sSUFBRyxJQUFLLEdBQUUsTUFBTyxJQUFHLElBQUssR0FBRSxNQUFPLElBQUcsSUFBSyxHQUFFLE1BQU8sSUFBRyxJQUFLLEdBQUUsTUFBTyxJQUFHLElBQUssR0FBRSxNQUFPLElBQUcsSUFBSyxHQUFFLE1BQU8sSUFBRyxJQUFLLEdBQUUsTUFBTyxJQUFHLElBQUssR0FBRSxNQUFPLElBQUcsSUFBSyxJQUFHLE9BQU9ELEVBQUUsT0FBT0EsRUFBRSxPQUFPLE9BQU8sRUFBRUEsRUFBRSxPQUFPLENBQUMsRUFBRSxHQUFHLElBQUssSUFBRyxPQUFPQSxFQUFFLE9BQU9BLEVBQUUsT0FBTyxPQUFPLEVBQUVBLEVBQUUsT0FBTyxDQUFDLEVBQUUsR0FBRyxJQUFLLElBQUcsTUFBTyxJQUFHLElBQUssSUFBRyxNQUFPLEdBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxVQUFVLFlBQVksVUFBVSxVQUFVLCtCQUErQixVQUFVLFVBQVUsU0FBUyx1RkFBdUYsNkJBQTZCLHFEQUFxRCxxREFBcUQscUJBQXFCLHNCQUFzQixFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFHLEVBQUNDLEVBQUUsVUFBVUgsRUFBRUEsRUFBRSxPQUFPRyxFQUFFLElBQUlBLENBQUMsRUFBQyxFQUFZSCxJQUFULFFBQXFCRyxJQUFULFNBQWFBLEVBQUUsT0FBT00sRUFBRU4sRUFBRSxPQUFPTSxFQUFFLE9BQU9OLEVBQUUsTUFBTSxVQUFVLENBQUMsT0FBT00sRUFBRSxNQUFNLE1BQU1BLEVBQUUsU0FBUyxDQUFDLEVBQUVOLEVBQUUsS0FBSyxTQUFTRCxFQUFFLENBQUNBLEVBQUUsQ0FBQyxJQUFJLFFBQVEsSUFBSSxVQUFVQSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUVFLEVBQUUsS0FBSyxDQUFDLEdBQUcsSUFBSUssRUFBRVQsRUFBRSxJQUFJLEVBQUUsYUFBYUEsRUFBRSxNQUFNLEVBQUUsVUFBVUUsRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBT0MsRUFBRSxPQUFPLE1BQU1NLENBQUMsQ0FBQyxFQUFXUCxJQUFULFFBQVlGLEVBQUUsT0FBT0UsR0FBR0MsRUFBRSxLQUFLQyxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssS0FBS0osRUFBRSxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxHQUFHLEdBQUcsR0FBRyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTQSxFQUFFRSxFQUFFQyxFQUFFLENBQUNELEVBQUUsUUFBUSxDQUFDLFdBQVcsMEJBQTBCLFFBQVEsc0JBQXNCLFVBQVUsd0RBQXdELFNBQVMsdURBQXVELENBQUMsRUFBRSxDQUFFLENBQUEsRUFBRSxFQUFFLENBQUMsU0FBU0YsRUFBRUUsRUFBRUMsRUFBRSxDQUFDLElBQUlD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RUFBRSxZQUFZLEVBQUUsS0FBS1ksRUFBRSxVQUFVLENBQUMsT0FBTyxLQUFLLFdBQVcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxFQUFFLFNBQVNDLEVBQUVYLEVBQUVDLEVBQUVNLEVBQUUsQ0FBQyxJQUFJQyxFQUFFVixFQUFFLFNBQVMsRUFBRVcsRUFBRSxFQUFFUCxFQUFFLE1BQU1ELENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxXQUFXLENBQUMsSUFBSUQsRUFBRSxLQUFLLENBQUMsRUFBRVUsRUFBRUgsRUFBRSxRQUFRLHVCQUF1QkUsQ0FBQyxFQUFFRSxFQUFFSCxFQUFFLE1BQU1SLEVBQUUsTUFBTVUsQ0FBQyxFQUFFLE9BQU9DLEVBQUUsUUFBUSxTQUFTYixFQUFFLENBQUNBLEVBQUUsS0FBS0UsRUFBRSxLQUFLLE9BQU9GLEVBQUUsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRWEsQ0FBQyxDQUFDLFNBQVNDLEVBQUVkLEVBQUUsQ0FBQyxPQUFPLE1BQU0sUUFBUUEsQ0FBQyxDQUFDLENBQUMsU0FBU2UsRUFBRWYsRUFBRSxDQUFDLE9BQU9BLEdBQUcsRUFBRUEsYUFBYSxRQUFRQSxhQUFhLE1BQU0sQ0FBQyxTQUFTZ0IsRUFBRWhCLEVBQUUsQ0FBQyxPQUFPLFNBQVNFLEVBQUVDLEVBQUVDLEVBQUVLLEVBQUUsQ0FBQyxJQUFJQyxFQUFFUixFQUFFLE1BQU1TLEVBQUVULEVBQUUsS0FBS1UsRUFBRSxDQUFFLEVBQUNDLEdBQUcsU0FBU1gsRUFBRVEsRUFBRSxDQUFDSSxFQUFFWixDQUFDLEdBQUdBLEVBQUUsUUFBUSxTQUFTRixFQUFFRSxFQUFFLENBQUMsRUFBRVUsRUFBRSxRQUFRSCxJQUFJTCxFQUFFRixFQUFFRixFQUFFRyxDQUFDLEdBQUdTLEVBQUUsS0FBSyxDQUFDLEtBQUtGLEVBQUUsT0FBT1IsQ0FBQyxFQUFFLE1BQU1GLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRUUsRUFBRSxRQUFRLFNBQVNBLEVBQUVDLEVBQUUsQ0FBQyxFQUFFUyxFQUFFLFFBQVFILElBQUlULEdBQUdhLEVBQUVYLEVBQUVRLEVBQUUsT0FBT1AsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHWSxFQUFFYixDQUFDLElBQUksS0FBSyxLQUFLQSxDQUFDLEVBQUUsUUFBUSxTQUFTRixFQUFFLENBQUMsRUFBRVksRUFBRSxRQUFRSCxJQUFJTCxFQUFFSixFQUFFRSxFQUFFRixDQUFDLEVBQUVHLENBQUMsR0FBR1MsRUFBRSxLQUFLLENBQUMsS0FBS0YsRUFBRSxPQUFPVixDQUFDLEVBQUUsTUFBTUUsRUFBRUYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxLQUFLRSxDQUFDLEVBQUUsUUFBUSxTQUFTQyxFQUFFLENBQUMsRUFBRVMsRUFBRSxRQUFRSCxJQUFJVCxHQUFHYSxFQUFFWCxFQUFFQyxDQUFDLEVBQUVPLEVBQUUsT0FBT1AsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxJQUFJLEVBQUUsT0FBT1UsRUFBRUgsRUFBRUMsQ0FBQyxFQUFFQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUVaLEVBQUUsQ0FBQyxPQUFPLFNBQVNFLEVBQUVDLEVBQUVDLEVBQUUsQ0FBQyxPQUFPLEtBQUssUUFBUUQsRUFBRUQsRUFBRSxXQUFXLE1BQU1GLEVBQUVJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBU2MsRUFBRWxCLEVBQUUsQ0FBQyxPQUFPLFNBQVNFLEVBQUVDLEVBQUVDLEVBQUUsQ0FBQyxPQUFPLEtBQUssU0FBU0QsRUFBRUQsRUFBRSxXQUFXLE1BQU1GLEVBQUVJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU9NLEVBQUUsTUFBTSxLQUFLLFNBQVMsQ0FBQyxNQUFTLENBQUEsQ0FBRSxDQUFDLFNBQVNTLEVBQUVuQixFQUFFLENBQUMsT0FBT1csRUFBRVgsRUFBRUEsRUFBRSxPQUFPLFNBQVNBLEVBQUUsQ0FBQyxPQUFPQSxDQUFDLENBQUMsRUFBRSxTQUFTQSxFQUFFLENBQUMsT0FBT0EsRUFBRSxLQUFLLElBQUksU0FBU0Es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RUUsRUFBRSxDQUFDRixHQUFHZSxFQUFFZixFQUFFLEdBQUdFLEVBQUUsS0FBS1MsRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUVYLEVBQUVFLEVBQUUsQ0FBQyxHQUFHRixJQUFJRSxFQUFFLE1BQVEsR0FBQyxHQUFHRSxFQUFFLFNBQVNKLENBQUMsR0FBR0ksRUFBRSxTQUFTRixDQUFDLEVBQUUsQ0FBQyxHQUFHRixFQUFFLFFBQVFFLEVBQUUsT0FBTyxNQUFNLEdBQUcsUUFBUUMsRUFBRSxFQUFFQSxFQUFFSCxFQUFFLE9BQU9HLElBQUksR0FBR0gsRUFBRUcsQ0FBQyxJQUFJRCxFQUFFQyxDQUFDLEVBQUUsTUFBUSxHQUFDLE1BQU0sRUFBRSxDQUFDLE9BQUdDLEVBQUUsT0FBT0osQ0FBQyxHQUFHSSxFQUFFLE9BQU9GLENBQUMsRUFBU0YsRUFBRSxRQUFTLElBQUdFLEVBQUUsUUFBUyxFQUFJRSxFQUFFLFNBQVNKLENBQUMsR0FBR0ksRUFBRSxTQUFTRixDQUFDLEVBQVNGLEVBQUUsU0FBU0UsRUFBRSxRQUFRRixFQUFFLFNBQVNFLEVBQUUsUUFBUUYsRUFBRSxZQUFZRSxFQUFFLFdBQVdGLEVBQUUsWUFBWUUsRUFBRSxXQUFXRixFQUFFLGFBQWFFLEVBQUUsV0FBYyxDQUFDRSxFQUFFLFNBQVNKLENBQUMsR0FBRyxDQUFDSSxFQUFFLFNBQVNGLENBQUMsRUFBU0YsR0FBR0UsRUFBYyxFQUFFRixFQUFFRSxDQUFDLENBQUMsQ0FBQyxTQUFTZ0IsRUFBRWxCLEVBQUUsQ0FBQyxPQUE0QixPQUFPLFVBQVUsU0FBUyxLQUFLQSxDQUFDLEdBQXRELG9CQUF1RCxDQUFDLFNBQVMsRUFBRUEsRUFBRUUsRUFBRSxDQUFDLEdBQUdFLEVBQUUsa0JBQWtCSixDQUFDLEdBQUdJLEVBQUUsa0JBQWtCRixDQUFDLEdBQUdGLEVBQUUsWUFBWUUsRUFBRSxVQUFVLE1BQVEsR0FBQyxHQUFHRSxFQUFFLFlBQVlKLENBQUMsR0FBR0ksRUFBRSxZQUFZRixDQUFDLEVBQUUsT0FBT0YsSUFBSUUsRUFBRSxJQUFJ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R0FBR0UsR0FBR2EsRUFBRWYsRUFBRUUsRUFBRUMsRUFBRSxLQUFLUSxFQUFFLEtBQUssQ0FBQyxFQUFFQSxFQUFFLFNBQVMsU0FBU1gsRUFBRUUsRUFBRUMsRUFBRSxDQUFDSCxHQUFHRSxHQUFHYSxFQUFFZixFQUFFRSxFQUFFQyxFQUFFLEtBQUtRLEVBQUUsUUFBUSxDQUFDLEVBQUVBLEVBQUUsVUFBVSxTQUFTWCxFQUFFRSxFQUFFQyxFQUFFLENBQUMsRUFBRUgsRUFBRUUsQ0FBQyxHQUFHYSxFQUFFZixFQUFFRSxFQUFFQyxFQUFFLFlBQVlRLEVBQUUsU0FBUyxDQUFDLEVBQUVBLEVBQUUsYUFBYSxTQUFTWCxFQUFFRSxFQUFFQyxFQUFFLENBQUMsRUFBRUgsRUFBRUUsQ0FBQyxHQUFHYSxFQUFFZixFQUFFRSxFQUFFQyxFQUFFLGVBQWVRLEVBQUUsWUFBWSxDQUFDLEVBQUVBLEVBQUUsWUFBWSxTQUFTWCxFQUFFRSxFQUFFQyxFQUFFLENBQUNILElBQUlFLEdBQUdhLEVBQUVmLEVBQUVFLEVBQUVDLEVBQUUsTUFBTVEsRUFBRSxXQUFXLENBQUMsRUFBRUEsRUFBRSxlQUFlLFNBQVNYLEVBQUVFLEVBQUVDLEVBQUUsQ0FBQ0gsSUFBSUUsR0FBR2EsRUFBRWYsRUFBRUUsRUFBRUMsRUFBRSxNQUFNUSxFQUFFLGNBQWMsQ0FBQyxFQUFFQSxFQUFFLE9BQU8sU0FBU1gsRUFBRUUsRUFBRUMsRUFBRSxDQUFDaUIsRUFBRSxNQUFNLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBT1gsRUFBRSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRUUsRUFBRSxhQUFhLFNBQVNYLEVBQUVFLEVBQUUsQ0FBQ2tCLEVBQUUsTUFBTSxLQUFLLENBQUMsRUFBRSxFQUFFLE9BQU9YLEVBQUUsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUVFLEVBQUUsUUFBUSxTQUFTWCxFQUFFLENBQUMsR0FBR0EsRUFBRSxNQUFNQSxDQUFDLEVBQUUsSUFBSXNCLEVBQUUsT0FBTyxNQUFNLFNBQVN0QixFQUFFLENBQUMsSUFBSUUsRUFBRSxDQUFFLEVBQUMsUUFBUUMsS0FBS0gsRUFBRVUsRUFBRSxLQUFLVixFQUFFRyxDQUFDLEdBQUdELEVBQUUsS0FBS0MsQ0FBQyxFQUFFLE9BQU9ELENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsU0FBU0YsRUFBRUUsRUFBRUMsRUFBRSxDQUFhLE9BQU8sT0FBTyxRQUExQixXQUFpQ0QsRUFBRSxRQUFRLFNBQVNGLEVBQUVFLEVBQUUsQ0FBQ0YsRUFBRSxPQUFPRSxFQUFFRixFQUFFLFVBQVUsT0FBTyxPQUFPRSxFQUFFLFVBQVUsQ0FBQyxZQUFZLENBQUMsTUFBTUYsRUFBRSxXQUFXLEdBQUcsU0FBUyxHQUFHLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFRSxFQUFFLFFBQVEsU0FBU0YsRUFBRUUsRUFBRSxDQUFDRixFQUFFLE9BQU9FLEVBQUUsSUFBSUMsRUFBRSxVQUFVLENBQUUsRUFBQ0EsRUFBRSxVQUFVRCxFQUFFLFVBQVVGLEVBQUUsVUFBVSxJQUFJRyxFQUFFSCxFQUFFLFVBQVUsWUFBWUEsQ0FBQyxDQUFDLEVBQUUsQ0FBRSxDQUFBLEVBQUUsR0FBRyxDQUFDLFNBQVNBLEVBQUVFLEVBQUVDLEVBQUUsQ0FBQ0QsRUFBRSxRQUFRLFNBQVNGLEVBQUUsQ0FBQyxPQUFPQSxHQUFhLE9BQU9BLEdBQWpCLFVBQWdDLE9BQU9BLEVBQUUsTUFBckIsWUFBdUMsT0FBT0EsRUFBRSxNQUFyQixZQUF1QyxPQUFPQSxFQUFFLFdBQXJCLFVBQThCLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLFNBQVNBLEVBQUVFLEVBQUVDLEVBQUUsRUFBRSxTQUFTRCxFQUFFRSxFQUFFLENBQUMsSUFBSSxFQUFFTSxFQUFFLFdBQVdQLEVBQUUsT0FBTyxTQUFTSCxFQUFFLENBQUMsR0FBRyxDQUFDeUksRUFBRXpJLENBQUMsRUFBRSxDQUFDLFFBQVFFLEVBQUUsR0FBR0MsRUFBRSxFQUFFQSxFQUFFLFVBQVUsT0FBT0EsSUFBSUQsRUFBRSxLQUFL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RUUsRUFBRUMsRUFBRSxDQUFDLE9BQU9ELEVBQUUsSUFBSUEsRUFBRUYsRUFBRSxPQUFPRSxHQUFHRixFQUFFLE9BQU9FLEVBQUVDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxLQUFLSCxFQUFFLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxTQUFTQSxFQUFFRSxFQUFFQyxFQUFFLENBQUMsSUFBSUMsRUFBRUssRUFBRUMsRUFBRUMsRUFBRVQsRUFBRSxRQUFRLENBQUEsRUFBRyxTQUFTVSxHQUFHLENBQUMsTUFBTSxNQUFNLGlDQUFpQyxDQUFDLENBQUMsU0FBU0MsR0FBRyxDQUFDLE1BQU0sTUFBTSxtQ0FBbUMsQ0FBQyxDQUFDLFNBQVNDLEVBQUVkLEVBQUUsQ0FBQyxHQUFHSSxJQUFJLFdBQVcsT0FBTyxXQUFXSixFQUFFLENBQUMsRUFBRSxJQUFJSSxJQUFJUSxHQUFHLENBQUNSLElBQUksV0FBVyxPQUFPQSxFQUFFLFdBQVcsV0FBV0osRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLE9BQU9JLEVBQUVKLEVBQUUsQ0FBQyxDQUFDLE1BQVMsQ0FBQyxHQUFHLENBQUMsT0FBT0ksRUFBRSxLQUFLLEtBQUtKLEVBQUUsQ0FBQyxDQUFDLE1BQVMsQ0FBQyxPQUFPSSxFQUFFLEtBQUssS0FBS0osRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBU2UsRUFBRWYsRUFBRSxDQUFDLEdBQUdTLElBQUksYUFBYSxPQUFPLGFBQWFULENBQUMsRUFBRSxJQUFJUyxJQUFJSSxHQUFHLENBQUNKLElBQUksYUFBYSxPQUFPQSxFQUFFLGFBQWEsYUFBYVQsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxPQUFPUyxFQUFFVCxDQUFDLENBQUMsTUFBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPUyxFQUFFLEtBQUssS0FBS1QsQ0FBQyxDQUFDLE1BQVMsQ0FBQyxPQUFPUyxFQUFFLEtBQUssS0FBS1QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxHQUFH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LE9BQU9JLEVBQUUsT0FBT0EsRUFBRSxPQUFPLENBQUNKLEVBQUVFLElBQUksQ0FBQyxJQUFJQyxFQUFFLEtBQUssR0FBR0gsRUFBRSxLQUFLLENBQUNBLEVBQUVJLElBQUlGLEVBQUUsVUFBVUYsRUFBRSxXQUFXRyxFQUFFQyxFQUFFLEdBQUcsRUFBRUosRUFBRUcsQ0FBQyxFQUFFLEtBQUssT0FBTyxLQUFLLGFBQWFILEVBQUVHLENBQUMsRUFBRUQsQ0FBQyxNQUFNLENBQUMsSUFBSUMsRUFBRUQsRUFBRSxZQUFZQSxFQUFFLFdBQVcsZ0JBQWdCQSxFQUFFLFdBQVcsZUFBZSxLQUFLRixHQUFZQSxFQUFFLEtBQVgsT0FBYyxHQUFHLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsR0FBR0csRUFBRSxTQUFTLFdBQVcsQ0FBQyxJQUFJQyxFQUFFLEtBQUssT0FBTyxLQUFLLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRUQsQ0FBQyxFQUFFTSxFQUFFLEtBQUssT0FBTyxLQUFLLGFBQWFMLEVBQUVGLENBQUMsRUFBRUYsRUFBRSxLQUFLUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU9ULENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxTQUFTQSxFQUFFLENBQUMsT0FBT0EsRUFBRSxNQUFVLEVBQUUsUUFBUUEsRUFBRSxRQUFRLEdBQXhCLEVBQXlCLENBQUMsRUFBRSxDQUFFLENBQUEsQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssT0FBTyxJQUFJLFFBQVEsTUFBTUksR0FBRyxDQUFDLElBQUksRUFBRSxNQUFNLEtBQUssT0FBTyxlQUFlLENBQUMsRUFBRSxHQUFPLEVBQUUsU0FBTixFQUFhLENBQUMsSUFBSUosRUFBRSxDQUFBLEVBQUcsRUFBRSxRQUFRLENBQUNHLEVBQUVDLElBQUksQ0FBQyxJQUFJTyxFQUFFLEVBQUUsS0FBS1gsR0FBR0csRUFBRSxVQUFVSCxFQUFFLFFBQVEsRUFBS1csSUFBU0EsRUFBRSxXQUFXLGVBQWUsS0FBS1gsR0FBWUEsRUFBRSxLQUFYLE9BQWMsRUFBbUNBLEVBQUUsS0FBSyxDQUFDLFNBQVNXLEVBQUUsU0FBUyxLQUFLUixFQUFFLEtBQUssTUFBTUEsRUFBRSxNQUFNQSxFQUFFLE1BQU0sT0FBTyxDQUFDLEdBQUVDLEVBQUUsR0FBRyxFQUFFLFFBQVFNLEVBQUVWLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTVUsRUFBRSxDQUFDLEVBQUUsU0FBU0EsRUFBRVYsRUFBRSxDQUFDLElBQUlFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQ1EsRUFBRUMsSUFBSSxDQUFDWCxFQUFFLEtBQUtBLEdBQUdVLEVBQUUsVUFBVVYsRUFBRSxRQUFRLEdBQUdFLEdBQUcsRUFBRSxPQUFPLEdBQUdFLEVBQUVKLENBQUMsRUFBRUUsS0FBSyxFQUFFLE9BQU8sY0FBYyxZQUFZUSxFQUFFLFNBQVMsRUFBRSxLQUFLUCxHQUFHLENBQUMsR0FBR0EsRUFBRSxDQUFDLElBQUlRLEVBQUVSLEVBQUUsWUFBVyxFQUFHLE1BQU0sV0FBVyxlQUFlLEtBQUtILEdBQVlBLEVBQUUsS0FBWCxPQUFjLEVBQUVXLElBQUlBLEVBQUUsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBR1gsRUFBRSxLQUFLLENBQUMsU0FBU1UsRUFBRSxTQUFTLEtBQUtDLEVBQUUsU0FBUyxVQUFVLENBQUMsRUFBRVQsR0FBRyxFQUFFLE9BQU8sR0FBR0UsRUFBRUosQ0FBQyxDQUFDLENBQUNFLEdBQUcsRUFBRSxTQUFTRixFQUFFLENBQUNFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1DQUFtQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksUUFBUSxNQUFNLEdBQUcsQ0FBQyxJQUFJRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEtBQUssT0FBTyxlQUFlLENBQUMsRUFBRU0sRUFBRSxFQUFFLElBQUlWLEdBQUcsQ0FBQ0EsRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFFLEVBQUNJLEVBQUUsRUFBRSxPQUFPLENBQUNKLEVBQUVFLEtBQUtGLEVBQUUsS0FBSyxDQUFDQSxFQUFFRyxJQUFJRCxFQUFFLFVBQVVGLEVBQUUsUUFBUSxJQUFJQSxFQUFFLEtBQUssQ0FBQyxTQUFTRSxFQUFFLFNBQVMsVUFBVUEsRUFBRSxTQUFTLENBQUMsRUFBRSxFQUFFLEtBQUssSUFBSSxRQUFRLE1BQU1DLEdBQUcsQ0FBQyxJQUFJQyxHQUFHLE1BQU0sS0FBSyxPQUFPLGNBQWMsWUFBWUYsRUFBRSxTQUFTLEdBQUcsWUFBVyxFQUFHLE1BQU0sV0FBVyxlQUFlLEtBQUtGLEdBQVlBLEVBQUUsS0FBWCxPQUFjLEdBQUcsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRUEsRUFBRSxLQUFLQSxHQUFHQSxFQUFFLFVBQVVFLEVBQUUsUUFBUSxFQUFFLEtBQUtFLEVBQUUsU0FBUyxXQUFXRCxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBR0gsR0FBRyxDQUFDLEVBQUUsUUFBUSxJQUFJLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFSSxFQUFFQSxFQUFFLE9BQU9KLEdBQU9VLEVBQUUsUUFBUVYsRUFBRSxRQUFRLEdBQXhCLEVBQXlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNa2hCLEVBQXdDLENBQUMsWUFBWSxFQUFFLENBQUMsS0FBSyxPQUFPLEVBQUUsS0FBSyxjQUFjLENBQUEsQ0FBRSxDQUFDLE1BQU0sWUFBWSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxjQUFjLGVBQWUsQ0FBQyxFQUFFLENBQUMsS0FBSyxjQUFjLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQSxFQUFHLElBQUksRUFBRSxFQUFFLElBQUloaEIsRUFBRSxNQUFNLEtBQUssT0FBTyxPQUFPLENBQUMsRUFBRSxLQUFLLGNBQWMsQ0FBQyxFQUFFLElBQUlBLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxjQUFjLENBQUMsRUFBRUUsRUFBRSxFQUFFLE1BQU0sSUFBSUosR0FBR0EsRUFBRSxPQUFPLEVBQUUsRUFBRSxRQUFRQSxHQUFHLENBQUtJLEVBQUUsUUFBUUosRUFBRSxPQUFPLEdBQXJCLEdBQXVCLEVBQUUsTUFBTSxPQUFPSSxFQUFFLFFBQVFKLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sRUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLE9BQU8sS0FBSyxjQUFjLENBQUMsRUFBRSxLQUFLLGNBQWMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFBLEVBQUcsSUFBSSxDQUFFLENBQUEsQ0FBQyxDQUFDLG1CQUFtQixFQUFFLENBQUMsS0FBSyxjQUFjLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQyxFQUFFLE1BQU0sQ0FBRSxFQUFDLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxpQkFBaUIsQ0FBQyxFQUFFLE9BQWMsSUFBUCxPQUFlLEVBQUUsRUFBRSxNQUFNLElBQUlBLEdBQUdBLEVBQUUsT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUEzQyxFQUE0QyxDQUFDLENBQUMsU0FBU21oQixJQUEyQyxDQUFDLE1BQU07QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsTUF3RXhtSCxDQUFDLFNBQVNDLEdBQTBDcGhCLEVBQUVFLEVBQUVDLEVBQUVDLEVBQUVLLEVBQUUsQ0FBQyxlQUFlQyxFQUFFVixFQUFFRSxFQUFFQyxFQUFFLENBQUMsSUFBSUMsRUFBRSxLQUFLLEdBQWFKLEVBQUUsT0FBWixVQUFtQkksRUFBRSxPQUFPSixFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU1hLEVBQUViLEVBQUUsT0FBT0UsRUFBRUMsQ0FBQyxDQUFDLEVBQUUsTUFBTVEsRUFBRVgsRUFBRUUsRUFBRUMsQ0FBQyxHQUFjSCxFQUFFLE9BQWIsV0FBb0JJLEVBQUUsT0FBT0osRUFBRSxZQUFZLEVBQUUsTUFBTVksRUFBRVosRUFBRUUsQ0FBQyxFQUFFLE1BQU1XLEVBQUViLEVBQUUsT0FBT0UsRUFBRUMsQ0FBQyxHQUFnQkgsRUFBRSxPQUFmLGFBQXNCSSxFQUFFLE1BQU1VLEVBQUVkLEVBQUVFLEVBQUVDLENBQUMsR0FBYSxPQUFPSCxHQUFqQixVQUE2QkEsRUFBRSxPQUFYLE9BQWdCLENBQUMsSUFBSUksRUFBRSxDQUFFLEVBQUMsUUFBUUssS0FBS1QsRUFBRSxHQUFHQSxFQUFFLGVBQWVTLENBQUMsRUFBRSxDQUFDLElBQUlFLEVBQUVYLEVBQUVTLENBQUMsRUFBRUcsRUFBRSxNQUFNRixFQUFFQyxFQUFFVCxFQUFFQyxDQUFDLEVBQUVDLEVBQUVLLENBQUMsRUFBRUcsRUFBRUQsRUFBRSxhQUFhLENBQUMsQ0FBQyxPQUFPUCxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUNKLEVBQUUsYUFBYSxFQUFFSSxDQUFDLENBQUMsQ0FBQyxlQUFlTyxFQUFFWCxFQUFFRSxFQUFFTyxFQUFFLENBQUMsSUFBSUMsRUFBRSxNQUFNUCxFQUFFLE9BQU8sT0FBTyxPQUFPSCxFQUFFLE1BQU0sQ0FBQyxFQUFFVyxFQUFFLE1BQU1LLEVBQUVoQixFQUFFLE9BQU9VLEVBQUUsV0FBV0QsRUFBRVAsQ0FBQyxFQUFFLEdBQUdGLEVBQUUsWUFBWUEsRUFBRSxrQkFBdUJBLEVBQUUsbUJBQVAsR0FBd0IsQ0FBQyxJQUFJRSxFQUFFUyxFQUFFLFFBQVFULEdBQUcsQ0FBQyxJQUFJQyxFQUFFRCxFQUFFLE9BQU8sS0FBS0EsR0FBR0EsRUFBRSxVQUFVRixFQUFFLGdCQUFnQixFQUFFLE9BQU9HLEdBQU9BLEVBQUUsYUFBTixHQUFrQkQsRUFBRSxDQUFBLENBQUUsQ0FBQyxFQUFFQyxFQUFFUSxFQUFFLE9BQU9YLEdBQUcsQ0FBQyxHQUFHLENBQUNFLEVBQUUsU0FBU0YsQ0FBQyxFQUFFLE9BQU9BLENBQUMsQ0FBQyxFQUFFVyxFQUFFLENBQUMsR0FBR1QsRUFBRUEsRUFBRSxLQUFLLENBQUNBLEVBQUVDLElBQVlILEVBQUUsVUFBVixPQUFtQkcsRUFBRSxPQUFPLEtBQUtELEdBQUdBLEVBQUUsVUFBVUYsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZRSxFQUFFLE9BQU8sS0FBS0EsR0FBR0EsRUFBRSxVQUFVRixFQUFFLGdCQUFnQixFQUFFLFlBQVlFLEVBQUUsT0FBTyxLQUFLQSxHQUFHQSxFQUFFLFVBQVVGLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWUcsRUFBRSxPQUFPLEtBQUtELEdBQUdBLEVBQUUsVUFBVUYsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsR0FBR0csQ0FBQyxDQUFDLENBQUMsR0FBR0gsRUFBRSxPQUFPLENBQUMsSUFBSUUsRUFBRUEsRUFBRUYsRUFBRSxvQ0FBb0NJLEVBQUVBLEVBQUVKLEVBQUUsTUFBTSxFQUFFLFdBQVcsS0FBS0EsRUFBRSxNQUFNLEVBQUVBLEVBQUUsT0FBTyxFQUFFVyxFQUFFQSxFQUFFLE1BQU1ULENBQUMsQ0FBQyxDQUFDLEdBQUdGLEVBQUUsTUFBTSxDQUFDLElBQUlFLEdBQU9BLEVBQUVGLEVBQUUsb0NBQW9DSSxFQUFFQSxFQUFFSixFQUFFLEtBQUssRUFBRSxXQUFXLEtBQUtBLEVBQUUsS0FBSyxHQUFHLEtBQXBGLElBQXlGVyxFQUFFQSxFQUFFLE1BQU0sRUFBRVQsQ0FBQyxFQUFFLENBQUMsT0FBTyxRQUFRLElBQUlTLEVBQUUsSUFBSSxNQUFNVCxHQUFHVyxFQUFFYixFQUFFLE9BQU9FLEVBQUVRLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWVFLEVBQUVaLEVBQUVFLEVBQUUsQ0FBQyxJQUFJRSxFQUFFLE1BQU1ELEVBQUUsT0FBTyxPQUFPSCxFQUFFLE1BQU0sRUFBRVMsRUFBRUwsRUFBRSxZQUFZLENBQUEsRUFBRyxPQUFPUyxFQUFFYixFQUFFLE9BQU9FLEdBQUdPLEVBQUUsQ0FBQyxFQUFFTCxFQUFFLE1BQU0sQ0FBQyxDQUFDLGVBQWVTLEVBQUViLEVBQUVFLEVBQUVDLEVBQUUsQ0FBQyxJQUFJQyxFQUFFLE1BQU1KLEVBQUUsSUFBSSxNQUFNQSxHQUFHVSxFQUFFVixFQUFFRSxFQUFFQyxDQUFDLENBQUMsRUFBRSxPQUFPLE1BQU0sUUFBUSxJQUFJQyxDQUFDLEdBQUcsT0FBTyxDQUFDSixFQUFFRSxLQUFLLENBQUMsR0FBR0YsRUFBRSxHQUFHRSxDQUFDLEdBQUcsQ0FBQSxDQUFFLENBQUMsQ0FBQyxlQUFlWSxFQUFFZCxFQUFFRSxFQUFFRSxFQUFFLENBQUMsT0FBT0osRUFBRSxjQUFlLENBQUEsSUFBSSxTQUFTLE9BQU9BLEVBQUUsbUJBQW1CLElBQUksV0FBVyxPQUFjQSxFQUFFLGdCQUFiLFNBQWtDSSxFQUFRLEdBQUdBLENBQUMsSUFBSUYsRUFBRSxPQUFPLEdBQUcsSUFBSSxXQUFXLE9BQU9GLEVBQUUsU0FBUyxJQUFJLFdBQVcsT0FBZSxPQUFPQSxFQUFFLFVBQXJCLFdBQXFDQSxFQUFFLFNBQVNFLEVBQUVFLEVBQUVELEVBQUUsT0FBTyxHQUFHSCxFQUFFLElBQUksRUFBcUcsTUFBNUYsU0FBUyxzQkFBc0IsaUJBQWlCQSxFQUFFLFNBQVMsd0JBQXdCLEVBQWlCRSxFQUFFRSxFQUFFRCxFQUFFLE1BQU0sRUFBRSxRQUFRLE1BQUcsQ0FBQ0gsRUFBRSxVQUFVQSxFQUFFLGFBQWFBLEVBQUUsU0FBUyxNQUFNRyxFQUFFLE9BQU8sc0JBQXNCQyxFQUFFSixFQUFFLFVBQVUsR0FBRyxPQUFPQSxFQUFFLGNBQWMsRUFBUyxNQUFNRyxFQUFFLE9BQU8sc0JBQXNCLE9BQU9DLENBQUMsRUFBRSxPQUFPRixFQUFFLE9BQU8sRUFBRSxPQUFPRixFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQVMsTUFBTUcsRUFBRSxPQUFPLGNBQWMsT0FBT0MsQ0FBQyxFQUFFLE9BQU9GLEVBQUUsT0FBTyxFQUFFLE9BQU9GLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWVlLEVBQUVmLEVBQUVFLEVBQUVPLEVBQUVDLEVBQUVDLEVBQUUsQ0FBQyxJQUFJQyxFQUFFLE1BQU1ULEVBQUUsT0FBTyxVQUFVLEtBQUssTUFBTSxLQUFLLFVBQVVILENBQUMsQ0FBQyxFQUFFLENBQUMsZUFBZUUsRUFBRSxPQUFPTyxFQUFFLFFBQVFDLEVBQUUsR0FBR04sQ0FBQyxDQUFDLEVBQUUsT0FBT0QsRUFBRSxPQUFPLE9BQU9RLEVBQUUsQ0FBQyxHQUFHQyxFQUFFLEdBQUdaLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZWdCLEVBQUVoQixFQUFFLENBQUEsRUFBR0UsRUFBRSxDQUFBLEVBQUdDLEVBQUUsR0FBR0MsRUFBRSxDQUFBLEVBQUcsQ0FBQyxPQUFPSixFQUFFLE9BQU9lLEVBQUVmLEVBQUVHLEVBQUVBLEVBQUVDLEVBQUUsUUFBUUYsQ0FBQyxFQUFFLENBQUMsR0FBR0EsQ0FBQyxDQUFDLENBQUMsT0FBT1EsRUFBRVYsRUFBRUUsRUFBRU8sQ0FBRyxDQUFDLENBQUMsTUFBTTRnQixFQUF3QyxDQUFDLFlBQVksRUFBRSxDQUFDLEtBQUssT0FBTyxFQUFFLEtBQUssa0JBQWtCLENBQUMsS0FBSyxDQUFBLEVBQUcsT0FBTyxDQUFBLEVBQUcsTUFBTSxDQUFBLEVBQUcsTUFBTSxDQUFFLENBQUEsQ0FBQyxDQUFDLHVCQUF1QixFQUFFLEVBQUUsRUFBRWpoQixFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssT0FBTyxJQUFJLFFBQVFNLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxRQUFRLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRVYsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsT0FBT0EsQ0FBQyxDQUFDLENBQUMsRUFBRUksQ0FBQyxFQUFFLEtBQUtKLEdBQUcsQ0FBQyxFQUFFLFlBQVlBLEVBQUUsRUFBRUEsR0FBRyxDQUFXLE9BQU9BLEdBQWpCLFVBQW9CLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsT0FBT0EsQ0FBQyxDQUFDLEdBQWEsT0FBT0EsR0FBakIsV0FBcUIsR0FBRyxFQUFFLEtBQUssS0FBSyxDQUFDLE9BQU8sT0FBTyxLQUFLQSxDQUFDLENBQUMsRUFBRVUsRUFBQyxFQUFHLEVBQUVOLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUUsRUFBRUEsRUFBRSxDQUFDLE9BQU8sSUFBSSxRQUFRLE1BQU0sR0FBRyxDQUFDLElBQUlNLEVBQUUsR0FBRyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUEsRUFBRyxFQUFFLENBQUEsRUFBRyxDQUFDLFlBQVlJLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxJQUFJLGFBQWEsQ0FBQyxPQUFPLE9BQU8sSUFBSSw0Q0FBNEMsS0FBSyxDQUFDLFNBQVMsMEZBQTBGLENBQUMsQ0FBQyxFQUFFLEVBQUUsUUFBUWQsR0FBRyxDQUFDLEVBQUUsS0FBSyxJQUFJLFFBQVEsTUFBTUUsR0FBRyxDQUFDLElBQUlPLEVBQUVBLEVBQUVMLEVBQUUsTUFBTSxFQUFFLE9BQU8sSUFBSSxhQUFhLENBQUMsSUFBSSxvREFBb0RVLENBQUMsV0FBVyxFQUFFLGdCQUFnQmQsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLElBQUksQ0FBQyxHQUFHLE9BQU8sS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sT0FBTyxFQUFFLGdCQUFnQkEsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLEtBQUssWUFBWVMsRUFBRSxRQUFRLGdCQUFnQixFQUFFLElBQUlJLEVBQUUsS0FBSyxNQUFNLEtBQUssVUFBVUosQ0FBQyxDQUFDLEVBQUVNLEVBQUVGLEVBQUUsV0FBVyxJQUFJYixJQUFJLENBQUMsYUFBYUEsRUFBRSxhQUFhLFFBQVEsRUFBRSxPQUFPLENBQUEsQ0FBRSxFQUFFLEVBQUUsT0FBTyxDQUFDQSxFQUFFRSxJQUFJQSxHQUFHUSxDQUFDLEVBQUUsRUFBRSxPQUFPLFlBQVlWLEVBQUUsT0FBT2UsQ0FBQyxFQUFFLEtBQUtYLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxLQUFLLGtCQUFrQkssRUFBRSxRQUFRLGdCQUFnQixFQUFFVCxFQUFFLFdBQVdJLEVBQUUsRUFBRSxXQUFXSixFQUFFLFdBQVdhLEVBQUUsVUFBVSxFQUFFLEVBQUUsZUFBZUEsRUFBRSxXQUFXYixFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxFQUFFLEtBQUtBLENBQUMsRUFBRUUsRUFBQyxDQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxJQUFJLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLFFBQVFGLEdBQUcsQ0FBQ0EsRUFBRSxXQUFXLFFBQVFBLEdBQUcsQ0FBQ0EsRUFBRSxPQUFPLFFBQVFBLEdBQUcsQ0FBQyxFQUFFLGtCQUFrQixPQUFPLFFBQVFFLEdBQUcsQ0FBQ0YsRUFBRSxXQUFXRSxFQUFFLGVBQWVGLEVBQUUsU0FBU0UsRUFBRSxhQUFhRixFQUFFLFdBQVdFLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxZQUFZLENBQUMsRUFBRSxFQUFFLGFBQWEsRUFBRSxFQUFFLGlCQUFpQixFQUFFLEtBQUssSUFBSSxDQUFDLElBQUlGLEVBQUUsQ0FBRSxFQUFDLEVBQUUsUUFBUUUsR0FBRyxDQUFDRixFQUFFLEtBQUssSUFBSSxRQUFRQSxHQUFHLENBQUMsSUFBSUksRUFBRUYsRUFBRSxXQUFXLElBQUlGLElBQUlBLEVBQUUsT0FBTyxRQUFRQSxHQUFHLENBQUMsT0FBT0EsRUFBRSxPQUFPLENBQUMsRUFBRUEsRUFBRSxFQUFFLEVBQUUsT0FBTyxZQUFZRSxFQUFFLE9BQU9FLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxLQUFLLGtCQUFrQkYsRUFBRSxRQUFRLGdCQUFnQixFQUFFRixHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxJQUFJQSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxFQUFFLEVBQUMsQ0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxFQUFFLFFBQVFBLEdBQUcsQ0FBQ0EsRUFBRSxXQUFXLFFBQVFFLEdBQUcsQ0FBQ0EsRUFBRSxPQUFPQSxFQUFFLE9BQU8sT0FBT0EsR0FBR0YsRUFBRSxXQUFXLFVBQVVBLEdBQUdBLEVBQUUsVUFBVUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxRQUFRLE1BQU0sR0FBRyxDQUFDLElBQUlFLEVBQUUsQ0FBQSxFQUFHLEVBQUUsS0FBSyxFQUFFLFFBQVFKLEdBQUcsQ0FBQ0EsRUFBRSxXQUFXLFFBQVFHLEdBQUcsQ0FBY0EsRUFBRSxZQUFmLFlBQTBCLEVBQUUscUJBQXFCSCxFQUFFRyxFQUFFLENBQUMsRUFBRUMsRUFBRSxLQUFLLElBQUksUUFBUUYsR0FBRyxDQUFDLEVBQUUsT0FBTyxjQUFjLFlBQVlDLEVBQUUsU0FBUyxFQUFFLEtBQUtDLEdBQUcsQ0FBQyxHQUFZQSxJQUFULE9BQVcsQ0FBQyxRQUFRLElBQUksbUNBQW1DRCxFQUFFLFNBQVMsRUFBRUQsRUFBRSxDQUFDLEtBQUtDLEVBQUUsU0FBUyxDQUFDLEVBQUUsTUFBTSxDQUFDLEdBQVdDLEVBQUUsWUFBYSxFQUFDLGFBQXhCLE9BQW9DLE9BQU8sRUFBRSxPQUFPLEtBQUssb0JBQW9CSixFQUFFLE9BQU9BLEVBQUUsV0FBV0csRUFBRSxRQUFRLEVBQUUsS0FBS0gsR0FBRyxDQUFDRSxFQUFFRixDQUFDLENBQUMsQ0FBQyxFQUFjSSxFQUFFLFlBQVcsRUFBRyxhQUE1QixXQUF3QyxFQUFFLHdCQUF3QkosRUFBRSxPQUFPQSxFQUFFLFdBQVdHLEVBQUUsUUFBUSxFQUFFLEtBQUtILEdBQUcsQ0FBQ0UsRUFBRUUsQ0FBQyxDQUFDLENBQUMsRUFBRUYsRUFBRUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFQSxFQUFFLE9BQU8sRUFBRSxRQUFRLElBQUlBLENBQUMsRUFBRSxLQUFLSixHQUFHLENBQUMsRUFBRUEsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJSSxFQUFFLEtBQUssRUFBRSxDQUFFLEVBQUMsT0FBTyxJQUFJLFFBQVEsTUFBTU0sR0FBRyxDQUFDLFFBQVFBLEtBQUssRUFBRSxDQUFDLElBQUlSLEVBQUVRLEVBQUUsUUFBUUMsRUFBRUQsRUFBRSxPQUFPLEtBQUtWLEdBQUdBLEVBQUUsYUFBYSxDQUFDLEVBQUUsR0FBR1csR0FBR0EsRUFBRSxhQUFhQSxFQUFFLFlBQVksT0FBTyxFQUFFLENBQUMsSUFBSUMsRUFBRSxNQUFNUixFQUFFLE9BQU8sWUFBWSxDQUFDLElBQUlPLEVBQUUsV0FBVyxDQUFDLEVBQUVDLEdBQUdBLEVBQUUsT0FBT0QsRUFBRSxhQUFhLE1BQU1QLEVBQUUsT0FBTyxlQUFlLENBQUMsT0FBTyxFQUFFLFFBQVFGLEVBQUUsV0FBVyxFQUFFLEtBQUtVLEVBQUUsSUFBSSxDQUFDLEdBQUcsSUFBSSxFQUFFLEtBQUtGLENBQUMsRUFBRSxDQUFDLENBQUNBLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsV0FBVyxRQUFRVixHQUFHLENBQUNBLEVBQUUsT0FBTyxRQUFRQSxHQUFHLENBQUMsR0FBR0EsRUFBRSxXQUFXLEVBQUUsVUFBVUEs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QUFDLEVBQUVDLEVBQUUsT0FBT2EsRUFBRWQsRUFBRUMsRUFBRSxpQkFBaUIsRUFBRSxFQUFFLEtBQUssUUFBUSxFQUFFLFNBQVNBLEVBQUUsWUFBWSxFQUFFQSxFQUFFLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxRQUFRRCxHQUFHLENBQUNDLEVBQUUsT0FBTyxVQUFVRCxDQUFDLEVBQUUsS0FBS0EsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLEtBQUssZUFBZWEsRUFBRSxRQUFRLGNBQWMsRUFBRSxFQUFFLEtBQUtiLENBQUMsRUFBRSxFQUFFLEtBQUssUUFBUSxFQUFFLFFBQVFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxLQUFLLENBQUMsV0FBVyxFQUFFLE9BQU8sV0FBVyxFQUFFLE9BQU8sY0FBYyxFQUFFLFVBQVUsY0FBYyxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUUsV0FBVyxRQUFRVixHQUFHLENBQUMsRUFBRSxXQUFXLFFBQVFFLEdBQUcsQ0FBQ0YsRUFBRSxZQUFZRSxFQUFFLFlBQVksRUFBRSxPQUFPLEtBQUssQ0FBQyxXQUFXRixFQUFFLFdBQVcsYUFBYUEsRUFBRSxTQUFTLGFBQWFFLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLFdBQVcsUUFBUUYsR0FBRyxDQUFDLEVBQUUsV0FBVyxRQUFRRSxHQUFHLENBQUNGLEVBQUUsTUFBTUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxLQUFLLENBQUMsS0FBS0YsRUFBRSxLQUFLLFlBQVlBLEVBQUUsUUFBUSxZQUFZRSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBUyxJQUFQLEtBQVMsQ0FBRSxFQUFDLE9BQU8sS0FBSyxDQUFDLEVBQUVFLEVBQUUsS0FBSyxFQUFFLE9BQU8sR0FBRyxFQUFF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QUFBLEVBQUcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxLQUFLLFFBQVEsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sZUFBZSxFQUFFLENBQUMsSUFBSSxFQUFFLE1BQU0sS0FBSyxrQkFBa0IsQ0FBQyxFQUFFLE9BQU8sS0FBSyxRQUFRLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLE9BQU8sRUFBRSxDQUFDLE9BQU8sTUFBTSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxPQUFPLEVBQUUsQ0FBQyxPQUFPLE1BQU0sS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sWUFBWSxFQUFFLENBQUMsT0FBTyxNQUFNLEtBQUssZUFBZSxDQUFDLENBQUMsQ0FBQyxNQUFNLFdBQVcsRUFBRSxDQUFDLElBQUksRUFBRSxNQUFNLEtBQUssY0FBYyxDQUFDLEVBQUUsT0FBTyxLQUFLLFFBQVEsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sYUFBYSxFQUFFLENBQUMsSUFBSSxFQUFFLE1BQU0sS0FBSyxnQkFBZ0IsQ0FBQyxFQUFFLE9BQU8sS0FBSyxRQUFRLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLGFBQWEsRUFBRSxDQUFDLE9BQU8sTUFBTSxLQUFLLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxNQUFNLFNBQVMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sTUFBTSxLQUFLLElBQUksYUFBYSxDQUFDLE9BQU8sT0FBTyxJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksY0FBYyxLQUFLLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPNWhCLEVBQUUsQ0FBQyxRQUFRLElBQUlBLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxrQkFBa0IsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLE1BQU0sS0FBSyxJQUFJLGFBQWEsQ0FBQyxPQUFPLE9BQU8sSUFBSSxHQUFHLEtBQUssSUFBSSxJQUFJLDJCQUEyQixDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU9BLEVBQUUsQ0FBQyxRQUFRLElBQUlBLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxlQUFlLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxNQUFNLEtBQUssSUFBSSxhQUFhLENBQUMsT0FBTyxPQUFPLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxjQUFjLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBT0EsRUFBRSxDQUFDLFFBQVEsSUFBSUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxPQUFPLEtBQUssSUFBSSxLQUFLLENBQUMsSUFBSSxlQUFlLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxPQUFPLEtBQUssSUFBSSxhQUFhLENBQUMsT0FBTyxPQUFPLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxlQUFlLEtBQUssQ0FBQyxLQUFLLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLE9BQU8sS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLGlCQUFpQixPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsT0FBTyxLQUFLLElBQUksS0FBSyxDQUFDLElBQUksbUJBQW1CLEtBQUssQ0FBQyxLQUFLLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLE9BQU8sS0FBSyxJQUFJLEtBQUssQ0FBQyxJQUFJLHNCQUFzQixLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUMsT0FBTyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksb0JBQW9CLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxLQUFLLElBQUksSUFBSSxD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R0FBMENoRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUVJLEVBQUUsTUFBTSxLQUFLLFlBQVksRUFBRSxDQUFDLEVBQUUsT0FBTyxNQUFNLEtBQUssa0JBQWtCLEVBQUVBLENBQUMsRUFBRSxLQUFLLFlBQVksS0FBSyxlQUFlLENBQUMsT0FBTyxDQUFDLEVBQUVBLENBQUMsRUFBRUEsQ0FBQyxDQUFDLE1BQU0sWUFBWSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJSixJQUFJLENBQUMsR0FBR0EsRUFBRSxPQUFPZ0UsR0FBMENoRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUVJLEVBQUUsTUFBTSxLQUFLLGVBQWUsRUFBRSxDQUFDLEVBQUUsT0FBTyxNQUFNLEtBQUsscUJBQXFCLEVBQUVBLENBQUMsQ0FBQyxDQUFDLE1BQU0sWUFBWSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssZUFBZSxDQUFDLEVBQUUsS0FBSyxNQUFNRixHQUFHLE1BQU0sS0FBSyx1QkFBdUIsRUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLGFBQWEsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSUYsSUFBSSxDQUFDLFFBQVFBLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRUksRUFBRSxNQUFNLEtBQUssZUFBZSxFQUFFLENBQUMsRUFBRSxPQUFPLE1BQU0sS0FBSyxxQkFBcUIsRUFBRUEsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLEtBQUssWUFBWSxPQUFPLGVBQWUsQ0FBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLEVBQUUsT0FBTyxDQUFDLElBQUlKLEVBQUUsTUFBTSxLQUFLLFNBQVMsRUFBRSxNQUFNLEVBQUVBLEVBQUUsS0FBSyxZQUFZLEtBQUssZUFBZSxFQUFFQSxDQUFDLEVBQUUsS0FBSyxZQUFZLEtBQUssZUFBZSxFQUFFLENBQUEsQ0FBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssWUFBWSxPQUFPLGVBQWUsQ0FBQSxFQUFHLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJQSxFQUFFLE1BQU0sS0FBSyxZQUFZLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRUEsRUFBRSxLQUFLLFlBQVksS0FBSyxlQUFlLEVBQUVBLENBQUMsRUFBRSxLQUFLLFlBQVksS0FBSyxlQUFlLEVBQUUsQ0FBRSxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxZQUFZLE9BQU8sa0JBQWtCLENBQUEsRUFBRyxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsSUFBSUEsRUFBRSxNQUFNLEtBQUssWUFBWSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUVBLEVBQUUsS0FBSyxZQUFZLEtBQUssa0JBQWtCLEVBQUVBLENBQUMsRUFBRSxLQUFLLFlBQVksS0FBSyxrQkFBa0IsRUFBRSxDQUFBLENBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLFlBQVksT0FBTyxjQUFjLENBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFLE9BQU8sQ0FBQyxJQUFJQSxHQUFHLE1BQU0sS0FBSyxTQUFTLEVBQUUsTUFBTSxHQUFHLEtBQUtBLEdBQUdBLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLFlBQVksS0FBSyxjQUFjLEVBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLFlBQVksT0FBTyx3QkFBd0IsQ0FBQSxFQUFHLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLEVBQUUsZUFBZSxDQUFDLElBQUlBLEVBQUUsTUFBTSxLQUFLLFNBQVMsRUFBRSxjQUFjLEVBQUVHLEVBQUUsTUFBTSxLQUFLLEtBQUssaUJBQWlCSCxFQUFFLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLEtBQUssWUFBWSxLQUFLLHdCQUF3QixFQUFFRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxZQUFZLE9BQU8sa0JBQWtCLENBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFLE1BQU0sQ0FBQyxJQUFJSCxFQUFFLE1BQU0sS0FBSyxLQUFLLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxZQUFZLEtBQUssa0JBQWtCLEVBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTWlpQixFQUF5QyxDQUFDLFlBQVksRUFBRSxFQUFFLEVBQUU3aEIsRUFBRSxFQUFFLENBQUMsS0FBSyxRQUFRLEVBQUUsS0FBSyxJQUFJLEVBQUUsS0FBSyxhQUFhLEVBQUUsS0FBSyxjQUFjQSxFQUFFLEtBQUssWUFBWSxFQUFFLEtBQUssZUFBYyxDQUFFLENBQUMsZUFBZSxFQUFFLENBQUMsT0FBTyxLQUFLLElBQUksS0FBSyxDQUFDLElBQUksd0JBQXdCLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLGdCQUFnQixFQUFFLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxNQUFNLEtBQUssYUFBYSxPQUFPLENBQUMsRUFBRUEsRUFBRSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxTQUFTLEVBQUUsU0FBUyxLQUFLLEVBQUUsS0FBSyxXQUFXLEVBQUUsV0FBVyxJQUFJSixHQUFHQSxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUMsR0FBR0EsRUFBRSxHQUFHLENBQUMsRUFBRUEsQ0FBQyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsT0FBTyxLQUFLLGFBQWEsVUFBVUksQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxFQUFFQSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLFlBQVlBLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEtBQUssY0FBYyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMscUJBQXFCLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLFFBQVEsT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLE9BQU9KLEdBQUdBLEVBQUUsU0FBUyxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsV0FBVyxJQUFJQSxJQUFJQSxFQUFFLE9BQU9BLEVBQUUsT0FBTyxPQUFPQSxHQUFHQSxFQUFFLFVBQVUsQ0FBQyxFQUFFQSxFQUFFLEVBQUUsS0FBSyxRQUFRLFVBQVUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssUUFBUSxPQUFPLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsSUFBSUEsR0FBR0EsRUFBRSxVQUFVLEVBQUUsU0FBUyxDQUFDLEdBQUdBLEVBQUUsR0FBRyxDQUFDLEVBQUVBLENBQUMsRUFBRSxLQUFLLFFBQVEsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLEVBQUUsRUFBRUksRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLFFBQVEsT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsUUFBUUosR0FBRyxDQUFDQSxFQUFFLFNBQVMsR0FBR0EsRUFBRSxPQUFPLFFBQVFFLEdBQUcsQ0FBQ0EsRUFBRSxVQUFVLElBQUlBLEVBQUUsWUFBWUUsRUFBRSxFQUFFLGFBQWFKLEVBQUUsT0FBTyxFQUFFRSxFQUFFLFFBQVEsRUFBRUEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssUUFBUSxVQUFVLENBQUMsRUFBRUUsQ0FBQyxDQUFDLE1BQU0sU0FBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxLQUFLLGFBQWEsT0FBTyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBTyxLQUFLLFFBQVFKLEVBQUUsRUFBRUEsRUFBRSxFQUFFLFdBQVcsT0FBT0EsSUFBSSxHQUFHLEVBQUUsV0FBV0EsQ0FBQyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsV0FBV0EsQ0FBQyxFQUFFLE9BQU8sSUFBSSxDQUFDLE1BQU0sc0JBQXNCLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxNQUFNLEtBQUssYUFBYSxPQUFPLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxPQUFPLEtBQUssUUFBUUEsRUFBRSxFQUFFQSxFQUFFLEVBQUUsV0FBVyxPQUFPQSxJQUFJLEdBQUcsRUFBRSxXQUFXQSxDQUFDLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxXQUFXQSxDQUFDLEVBQUUsU0FBUyxPQUFPLElBQUksQ0FBQyxNQUFNLGVBQWUsRUFBRSxDQUFDLElBQUksRUFBRSxNQUFNLEtBQUssYUFBYSxPQUFPLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxXQUFXLElBQUksQ0FBQyxNQUFNLFlBQVksRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sSUFBSSxFQUFFLE1BQU0sS0FBSyxnQkFBZ0IsRUFBRSxDQUFDLEVBQUUsT0FBTyxLQUFLLHFCQUFxQixFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sWUFBWSxFQUFFLEVBQUUsQ0FBQyxPQUFPLE1BQU0sS0FBSyxlQUFlLENBQUMsRUFBRSxLQUFLLHFCQUFxQixFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sY0FBYyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUlJLEVBQUUsS0FBSyxFQUFFLE1BQU0sS0FBSyxhQUFhLE9BQU8sQ0FBQyxFQUFFLEdBQUcsQ0FBQ0EsRUFBRSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsRUFBRSxXQUFXLE1BQVMsQ0FBRSxDQUFBLE9BQU9BLENBQUMsQ0FBQyxNQUFNLGNBQWMsRUFBRSxFQUFFLEVBQUVBLEVBQUUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFLE9BQU8sTUFBTSxLQUFLLGlCQUFpQixFQUFFLEVBQUUsRUFBRUEsQ0FBQyxFQUFFLEtBQUssaUJBQWlCLEVBQUUsRUFBRSxFQUFFQSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLFlBQVksT0FBTyxlQUFlLENBQUEsRUFBRyxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxJQUFJSixFQUFFLE1BQU0sS0FBSyxjQUFjLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxZQUFZLEtBQUssZUFBZSxFQUFFQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxZQUFZLE9BQU8sZUFBZSxDQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFLFVBQVUsS0FBSyxjQUFjLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsRUFBRSxLQUFLLFlBQVksT0FBTyxlQUFlLENBQUEsRUFBRyxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJQSxFQUFFLE1BQU0sS0FBSyxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLFlBQVksS0FBSyxlQUFlLEVBQUVBLENBQUMsQ0FBQyxPQUFPQSxFQUFFLENBQUMsUUFBUSxJQUFJLGdCQUFnQkEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssWUFBWSxPQUFPLGtCQUFrQixDQUFBLEVBQUcsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxLQUFLLFlBQVksRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssWUFBWSxLQUFLLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxPQUFPLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLFlBQVksT0FBTyxnQkFBZ0IsQ0FBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sS0FBSyxlQUFlLEVBQUUsTUFBTSxFQUFFLEtBQUssWUFBWSxLQUFLLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUs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TyxFQUFFLFFBQVEsRUFBRSxRQUFRLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLFFBQVEsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLFFBQVEsVUFBVSxDQUFDLEVBQUUsRUFBRSxRQUFRRSxHQUFHLENBQUMsS0FBSyxZQUFZLEtBQUssaUJBQWlCLENBQUMsT0FBTyxFQUFFLFFBQVFBLEVBQUUsUUFBUSxRQUFRQSxFQUFFLE9BQU8sRUFBRUEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLHNCQUFzQixFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxRQUFRLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUlBLEVBQUUsRUFBRSxVQUFVLEVBQUUsVUFBVSxPQUFPQyxHQUFHQSxFQUFFLFNBQVMsSUFBSUQsRUFBRUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxRQUFRLFVBQVUsQ0FBQyxFQUFFLEtBQUssWUFBWSxLQUFLLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxFQUFFRCxDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUlFLEVBQUUsS0FBSyxRQUFRLE9BQU8sQ0FBQyxFQUFFQSxJQUFJQSxFQUFFLFVBQVVBLEVBQUUsVUFBVSxJQUFJRixHQUFHQSxFQUFFLFNBQVMsRUFBRSxFQUFFQSxDQUFDLEVBQUUsS0FBSyxRQUFRLFVBQVVFLENBQUMsRUFBRSxLQUFLLFlBQVksS0FBSyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxNQUFNLEtBQUssYUFBYSxPQUFPLENBQUMsRUFBRSxPQUFPLElBQUksUUFBUSxDQUFDSixFQUFFSSxJQUFJLENBQUMsSUFBSUssRUFBRSxFQUFFLFVBQVUsS0FBS1QsR0FBR0EsRUFBRSxTQUFTLENBQUMsRUFB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YSxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxFQUFFLEVBQUVOLEVBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxLQUFLLGVBQWUsRUFBRSxFQUFFLEVBQUVBLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxFQUFFQSxFQUFFLENBQUMsT0FBTyxLQUFLLEtBQUssZ0JBQWdCLEVBQUUsRUFBRSxFQUFFQSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsT0FBTyxLQUFLLGFBQWEsWUFBYSxDQUFBLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxLQUFLLGFBQWEsV0FBVyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxPQUFPLEtBQUssYUFBYSxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sS0FBSyxhQUFhLE9BQU8sQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsT0FBTyxLQUFLLGFBQWEsVUFBVSxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxPQUFPLEtBQUssYUFBYSxjQUFjLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDLE9BQU8sS0FBSyxhQUFhLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsT0FBTyxLQUFLLGNBQWMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE1BQU0sS0FBSyxTQUFTLENBQUMsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEtBQUtKLEdBQUdBLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxjQUFjLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxjQUFjLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxjQUFjLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxjQUFjLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxlQUFlLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsRUFBRSxFQUFFLENBQUMsT0FBTyxLQUFLLGVBQWUsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUMsT0FBTyxLQUFLLGVBQWUsZUFBZSxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxlQUFlLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxlQUFlLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxLQUFLLGVBQWUsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUUsRUFBRUksRUFBRSxDQUFDLE9BQU8sS0FBSyxlQUFlLGNBQWMsRUFBRSxFQUFFLEVBQUVBLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsT0FBTyxLQUFLLFlBQVksUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsT0FBTyxLQUFLLFlBQVksU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssWUFBWSxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLEVBQUVBLEVBQUUsRUFBRU0sRUFBRSxFQUFFLENBQUMsT0FBTyxLQUFLLFlBQVkscUJBQXFCLEVBQUUsRUFBRSxFQUFFTixFQUFFLEVBQUVNLEVBQUUsQ0FBQyxDQUFDLENBQUMscUJBQXFCLEVBQUUsRUFBRSxFQUFFTixFQUFFLEVBQUVNLEVBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxZQUFZLHFCQUFxQixFQUFFLEVBQUUsRUFBRU4sRUFBRSxFQUFFTSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsT0FBTyxLQUFLLFlBQVksV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDLE9BQU8sS0FBSyxZQUFZLGNBQWMsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxZQUFZLHVCQUF1QixFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDLE9BQU8sS0FBSyxnQkFBZ0IsZUFBZSxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxPQUFPLEtBQUssZ0JBQWdCLFlBQVksQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUMsT0FBTyxLQUFLLGdCQUFnQixhQUFhLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDLE9BQU8sS0FBSyxnQkFBZ0IsZUFBZSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLEtBQUssS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDLE9BQU8sS0FBSyxLQUFLLGVBQWUsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxLQUFLLGFBQWEsa0JBQWlCLEVBQUcsS0FBSyxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxLQUFLLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxPQUFPLEtBQUssS0FBSyxhQUFhLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDLE9BQU8sS0FBSyxLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxPQUFPLEtBQUssS0FBSyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sS0FBSyxLQUFLLFdBQVUsQ0FBRSxDQUFDLFlBQVksRUFBRSxDQUFDLE9BQU8sS0FBSyxLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sS0FBSyxLQUFLLFNBQVEsQ0FB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
|
|
196
|
+
`,blob=typeof self<"u"&&self.Blob&&new Blob([jsContent],{type:"text/javascript;charset=utf-8"});function WorkerWrapper(s){let F;try{if(F=blob&&(self.URL||self.webkitURL).createObjectURL(blob),!F)throw"";const U=new Worker(F,{name:s==null?void 0:s.name});return U.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(F)}),U}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(jsContent),{name:s==null?void 0:s.name})}finally{F&&(self.URL||self.webkitURL).revokeObjectURL(F)}}let WORKER_EVENTS={INIT:1,REQUEST_APP:2,PROCESS_DATA:3};class IndexedDBAppService extends AppDataService$1{constructor(F,U,Q){super(F,U,Q),this.dataService=new AppHttpService(F,U,Q),this.requestCache=new Map,this.gudhub=Q,this.resolveFnMap=new Map,this.appRequestAndProcessWorker=new WorkerWrapper,this.appRequestAndProcessWorker.postMessage({type:WORKER_EVENTS.INIT,gudhubSerialized:this.gudhub.serialized});let e=this;this.appRequestAndProcessWorker.onerror=function(B){},this.appRequestAndProcessWorker.onmessage=function(B){B.data.type==WORKER_EVENTS.REQUEST_APP&&e.resolveFnMap.has(B.data.id)&&e.resolveFnMap.get(B.data.id)(B.data.data),B.data.type==WORKER_EVENTS.PROCESS_DATA&&(e.gudhub.itemProcessor.handleDiff(B.data.id,B.data.compareRes),(B.data.viewListChanged||B.data.fieldListChanged)&&e.gudhub.appProcessor.updateAppFieldsAndViews(B.data.newVersion))},this.isWithCache(),this.storeManager=new AppStoreManager}static[Symbol.hasInstance](F){try{return F instanceof IndexedDBAppService}catch{return!1}}isWithCache(){return!0}async getApp(F){if(this.requestCache.has(F))return this.requestCache.get(F);let U=this,Q=await this.has(F);if(Q=!1,Q){let e=await this.getCached(F),B=await this.chunkDataService.getCachedMergedChunk(F,e.chunks);e.items_list=await this.gudhub.util.mergeChunks([B,e]);let t=Promise.resolve(e);return this.requestCache.set(F,t),this.appRequestAndProcessWorker.postMessage({type:WORKER_EVENTS.PROCESS_DATA,id:F}),t}else{let e=new Promise((B,t)=>{U.resolveFnMap.set(F,B)});return this.requestCache.set(F,e),this.appRequestAndProcessWorker.postMessage({type:WORKER_EVENTS.REQUEST_APP,id:F}),e}}async getCached(F){return this.storeManager.getApp(F)}async has(F){try{return this.storeManager.hasApp(F)}catch{debugger}}async putApp(F,U){return this.storeManager.putApp(F,U)}}class AppThroughWebWorkerService extends AppDataService$1{constructor(F,U,Q){super(F,U,Q),this.dataService=new AppHttpService(F,U,Q),this.requestCache=new Map,this.gudhub=Q,this.resolveFnMap=new Map,this.appRequestAndProcessWorker=new WorkerWrapper,this.appRequestAndProcessWorker.postMessage({type:WORKER_EVENTS.INIT,gudhubSerialized:this.gudhub.serialized});let e=this;this.appRequestAndProcessWorker.onerror=function(B){},this.appRequestAndProcessWorker.onmessage=function(B){B.data.type==WORKER_EVENTS.REQUEST_APP&&e.resolveFnMap.has(B.data.id)&&e.resolveFnMap.get(B.data.id)(B.data.data),B.data.type==WORKER_EVENTS.PROCESS_DATA&&(e.gudhub.itemProcessor.handleDiff(B.data.id,B.data.compareRes),(B.data.viewListChanged||B.data.fieldListChanged)&&e.gudhub.appProcessor.updateAppFieldsAndViews(B.data.newVersion))},this.isWithCache(),this.storeManager=new AppStoreManager}static[Symbol.hasInstance](F){try{return F instanceof IndexedDBAppService}catch{return!1}}isWithCache(){return!1}async getApp(F){if(this.requestCache.has(F))return this.requestCache.get(F);let U,Q=new Promise((e,B)=>{U=e});return this.resolveFnMap.set(F,U),this.requestCache.set(F,Q),this.appRequestAndProcessWorker.postMessage({type:WORKER_EVENTS.REQUEST_APP,id:F}),Q}async getCached(F){return this.storeManager.getApp(F)}async has(F){try{return this.storeManager.hasApp(F)}catch{debugger}}async putApp(F,U){return this.storeManager.putApp(F,U)}}let AppDataService,ChunkDataService,appDataServiceConf,chunkDataServiceConf;IS_BROWSER&&useWorkerToProcessRequestsData&&(AppDataService=AppThroughWebWorkerService,appDataServiceConf=appsConf),IS_BROWSER||(AppDataService=AppHttpService),IS_BROWSER&&cache_chunk_requests&&!useWorkerToProcessRequestsData&&(ChunkDataService=IndexedDBChunkService,chunkDataServiceConf=chunksConf),IS_BROWSER&&cache_chunk_requests&&useWorkerToProcessRequestsData&&(ChunkDataService=IndexedDBChunkService,chunkDataServiceConf=chunksConf),IS_BROWSER||(ChunkDataService=ChunkHttpService);class GudHub{constructor(F){let U=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{server_url,wss_url,node_server_url,initWebsocket:!1,activateSW:!1,swLink:"",async_modules_path,file_server_url,automation_modules_path,accesstoken:this.accesstoken,expirydate:this.expirydate};if(this.serialized={authKey:F,options:U},this.config=U,this.ghconstructor=new GHConstructor(this),this.interpritate=new Interpritate(this),this.pipeService=new PipeService,this.storage=new Storage(U.async_modules_path,U.file_server_url,U.automation_modules_path),this.util=new Utils(this),this.req=new GudHubHttpsService(U.server_url),this.auth=new Auth(this.req,this.storage),this.sharing=new Sharing(this,this.req),this.groupSharing=new GroupSharing(this,this.req,this.pipeService),F?this.storage.setUser({auth_key:F}):U.accesstoken&&U.expirydate&&this.storage.setUser({accesstoken:U.accesstoken,expirydate:U.expirydate}),this.req.init(this.auth.getToken.bind(this.auth)),this.ws=new WebSocketApi(U.wss_url,this.auth),this.initializeAppProcessor(),this.itemProcessor=new ItemProcessor(this.storage,this.pipeService,this.req,this.appProcessor,this.util),this.fieldProcessor=new FieldProcessor(this.storage,this.req,this.appProcessor,this.itemProcessor,this.pipeService),this.fileManager=new FileManager(this.storage,this.pipeService,this.req,this.appProcessor),this.documentManager=new DocumentManager(this.req,this.pipeService),this.websocketsemitter=new WebSocketEmitter(this),U.initWebsocket){const Q=this;this.ws.initWebSocket(WebsocketHandler.bind(this,Q),this.appProcessor.refreshApps.bind(this.appProcessor))}U.activateSW&&this.activateSW(U.swLink)}initializeAppProcessor(){this.appProcessor=new AppProcessor(this.storage,this.pipeService,this.req,this.ws,this.util,this.config.activateSW,new AppDataService(this.req,appDataServiceConf,this))}async activateSW(F){if(IS_BROWSER_MAIN_THREAD&&"serviceWorker"in window.navigator)try{const U=await window.navigator.serviceWorker.register(F);U.update().then(()=>console.log("%cSW ->>> Service worker successful updated","display: inline-block ; background-color: #689f38 ; color: #ffffff ; font-weight: bold ; padding: 3px 7px; border-radius: 3px;")).catch(()=>console.warn("SW ->>> Service worker is not updated")),console.log("%cSW ->>> Service worker is registered","display: inline-block ; background-color: #689f38 ; color: #ffffff ; font-weight: bold ; padding: 3px 7px; border-radius: 3px;",U)}catch(U){console.warn("%cSW ->>> Service worker is not registered","display: inline-block ; background-color: #d32f2f ; color: #ffffff ; font-weight: bold ; padding: 3px 7px; border-radius: 3px;",U)}else console.log("%cSW ->>> ServiceWorkers not supported","display: inline-block ; background-color: #d32f2f ; color: #ffffff ; font-weight: bold ; padding: 3px 7px; border-radius: 3px;")}on(F,U,Q){return this.pipeService.on(F,U,Q),this}emit(F,U,Q,e){return this.pipeService.emit(F,U,Q,e),this}destroy(F,U,Q){return this.pipeService.destroy(F,U,Q),this}prefilter(F,U){return this.util.prefilter(F,U)}debounce(F,U){return this.util.debounce(F,U)}emitToUser(F,U){return this.websocketsemitter.emitToUser(F,U)}broadcastToAppSubscribers(F,U,Q){return this.websocketsemitter.broadcastToAppSubscribers(F,U,Q)}getInterpretation(F,U,Q,e,B,t,n){return this.interpritate.getInterpretation(F,U,Q,e,B,t,n)}getInterpretationById(F,U,Q,e,B,t){return this.interpritate.getInterpretationById(F,U,Q,e,B,t)}filter(F,U){return this.util.filter(F,U)}mergeFilters(F,U){return this.util.mergeFilters(F,U)}group(F,U){return this.util.group(F,U)}getFilteredItems(F,U){let Q=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.util.getFilteredItems(F,U,Q.element_app_id,Q.app_id,Q.item_id,Q.field_group,Q.search,Q.search_params)}sortItems(F,U){return this.util.sortItems(F,U)}triggerAppChange(F,U,Q){this.itemProcessor.handleItemsChange(F,U,Q),this.appProcessor.handleAppChange(F,U,Q)}triggerIemsChange(F,U){this.itemProcessor.triggerItemsChange(F,U)}jsonToItems(F,U){return this.util.jsonToItems(F,U)}getDate(F){return this.util.getDate(F)}populateWithDate(F,U){return this.util.populateWithDate(F,U)}checkRecurringDate(F,U){return this.util.checkRecurringDate(F,U)}populateItems(F,U,Q){return this.util.populateItems(F,U,Q)}populateWithItemRef(F,U,Q,e,B,t){return this.util.populateWithItemRef(F,U,Q,e,B,t)}compareItems(F,U,Q){return this.util.compareItems(F,U,Q)}mergeItems(F,U,Q){return this.util.mergeItems(F,U,Q)}mergeObjects(F,U){return this.util.mergeObjects(F,U)}makeNestedList(F,U,Q,e,B){return this.util.makeNestedList(F,U,Q,e,B)}jsonConstructor(F,U,Q,e){return this.util.jsonConstructor(F,U,Q,e)}getAppsList(){return this.appProcessor.getAppsList()}getAppInfo(F){return this.appProcessor.getAppInfo(F)}deleteApp(F){return this.appProcessor.deleteApp(F)}getApp(F){return this.appProcessor.getApp(F)}updateApp(F){return this.appProcessor.updateApp(F)}updateAppInfo(F){return this.appProcessor.updateAppInfo(F)}createNewApp(F){return this.appProcessor.createNewApp(F)}getItems(F){return this.itemProcessor.getItems(F)}async getItem(F,U){const Q=await this.getItems(F);if(Q)return Q.find(e=>e.item_id==U)}addNewItems(F,U){return this.itemProcessor.addNewItems(F,U)}updateItems(F,U){return this.itemProcessor.updateItems(F,U)}deleteItems(F,U){return this.itemProcessor.deleteItems(F,U)}restoreItems(F,U){return this.itemProcessor.restoreItems(F,U)}getField(F,U){return this.fieldProcessor.getField(F,U)}getFieldIdByNameSpace(F,U){return this.fieldProcessor.getFieldIdByNameSpace(F,U)}getFieldModels(F){return this.fieldProcessor.getFieldModels(F)}updateField(F,U){return this.fieldProcessor.updateField(F,U)}deleteField(F,U){return this.fieldProcessor.deleteField(F,U)}getFieldValue(F,U,Q){return this.fieldProcessor.getFieldValue(F,U,Q)}setFieldValue(F,U,Q,e){return this.fieldProcessor.setFieldValue(F,U,Q,e)}getFile(F,U){return this.fileManager.getFile(F,U)}getFiles(F,U){return this.fileManager.getFiles(F,U)}uploadFile(F,U,Q){return this.fileManager.uploadFile(F,U,Q)}uploadFileFromString(F,U,Q,e,B,t,n){return this.fileManager.uploadFileFromString(F,U,Q,e,B,t,n)}updateFileFromString(F,U,Q,e,B,t,n){return this.fileManager.updateFileFromString(F,U,Q,e,B,t,n)}deleteFile(F,U){return this.fileManager.deleteFile(F,U)}duplicateFile(F){return this.fileManager.duplicateFile(F)}downloadFileFromString(F,U){return this.fileManager.downloadFileFromString(F,U)}createDocument(F){return this.documentManager.createDocument(F)}getDocument(F){return this.documentManager.getDocument(F)}getDocuments(F){return this.documentManager.getDocuments(F)}deleteDocument(F){return this.documentManager.deleteDocument(F)}login(F){return this.auth.login(F)}loginWithToken(F){return this.auth.loginWithToken(F)}logout(F){return this.appProcessor.clearAppProcessor(),this.auth.logout(F)}signup(F){return this.auth.signup(F)}getUsersList(F){return this.auth.getUsersList(F)}updateToken(F){return this.auth.updateToken(F)}avatarUploadApi(F){return this.auth.avatarUploadApi(F)}getVersion(){return this.auth.getVersion()}getUserById(F){return this.auth.getUserById(F)}getToken(){return this.auth.getToken()}updateUser(F){return this.auth.updateUser(F)}updateAvatar(F){return this.auth.updateAvatar(F)}}return GudHub});
|
|
197
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VkaHViLnVtZC5qcyIsInNvdXJjZXMiOltdLCJzb3VyY2VzQ29udGVudCI6W10sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsifQ==
|